Set of values corresponding to a given SpectrumModel. More...
#include "spectrum-value.h"
Inheritance diagram for ns3::SpectrumValue:
Collaboration diagram for ns3::SpectrumValue:Public Types | |
| typedef void(* | TracedCallback) (Ptr< SpectrumValue > value) |
| TracedCallback signature for SpectrumValue. | |
Public Member Functions | |
| SpectrumValue () | |
| SpectrumValue (Ptr< const SpectrumModel > sm) | |
| SpectrumValue constructor. | |
| Bands::const_iterator | ConstBandsBegin () const |
| Bands::const_iterator | ConstBandsEnd () const |
| Values::const_iterator | ConstValuesBegin () const |
| Values::const_iterator | ConstValuesEnd () const |
| Ptr< SpectrumValue > | Copy () const |
| Ptr< const SpectrumModel > | GetSpectrumModel () const |
| SpectrumModelUid_t | GetSpectrumModelUid () const |
| Values & | GetValues () |
| Provides the direct access to the underlying std::vector<double> that stores the spectrum values. | |
| const Values & | GetValues () const |
| Provides the direct read-only access to the underlying std::vector<double> that stores the spectrum values. | |
| uint32_t | GetValuesN () const |
| Get the number of values stored in the array. | |
| SpectrumValue & | operator*= (const SpectrumValue &rhs) |
| Multiply *this by the Right Hand Side of the operator, component by component. | |
| SpectrumValue & | operator*= (double rhs) |
| Multiply every component of *this by the value of the Right Hand Side of the operator. | |
| SpectrumValue & | operator+= (const SpectrumValue &rhs) |
| Add the Right Hand Side of the operator to *this, component by component. | |
| SpectrumValue & | operator+= (double rhs) |
| Add the value of the Right Hand Side of the operator to all components of *this. | |
| SpectrumValue & | operator-= (const SpectrumValue &rhs) |
| Subtract the Right Hand Side of the operator from *this, component by component. | |
| SpectrumValue & | operator-= (double rhs) |
| Subtract the value of the Right Hand Side of the operator from all components of *this. | |
| SpectrumValue & | operator/= (const SpectrumValue &rhs) |
| Divide *this by the Right Hand Side of the operator, component by component. | |
| SpectrumValue & | operator/= (double rhs) |
| Divide every component of *this by the value of the Right Hand Side of the operator. | |
| SpectrumValue | operator<< (int n) const |
| left shift operator | |
| SpectrumValue & | operator= (double rhs) |
| Assign each component of *this to the value of the Right Hand Side of the operator. | |
| SpectrumValue | operator>> (int n) const |
| right shift operator | |
| double & | operator[] (size_t index) |
| Access value at given frequency index. | |
| const double & | operator[] (size_t index) const |
| Access value at given frequency index. | |
| void | SetValues (Values &&values) |
| Directly set the values by moving the values from the input std::vector<double> | |
| void | SetValues (Values &values) |
| Directly set the values using the std::vector<double> | |
| const double & | ValuesAt (uint32_t pos) const |
| Get the value element at the position. | |
| Values::iterator | ValuesBegin () |
| Values::iterator | ValuesEnd () |
Public Member Functions inherited from ns3::SimpleRefCount< SpectrumValue > | |
| SimpleRefCount () | |
| Default constructor. | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor. | |
| uint32_t | GetReferenceCount () const |
| Get the reference count of the object. | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) |
| Assignment operator. | |
| void | Ref () const |
| Increment the reference count. | |
| void | Unref () const |
| Decrement the reference count. | |
Private Member Functions | |
| void | Add (const SpectrumValue &x) |
| Add a SpectrumValue (element to element addition) | |
| void | Add (double s) |
| Add a flat value to all the current elements. | |
| void | ChangeSign () |
| Change the values sign. | |
| void | Divide (const SpectrumValue &x) |
| Divides by a SpectrumValue (element to element division) | |
| void | Divide (double s) |
| Divides by a flat value to all the current elements. | |
| void | Exp (double base) |
| Modifies each element so that it is the base raised to each element value. | |
| void | Log () |
| Applies a Log to each the elements. | |
| void | Log10 () |
| Applies a Log10 to each the elements. | |
| void | Log2 () |
| Applies a Log2 to each the elements. | |
| void | Multiply (const SpectrumValue &x) |
| Multiplies for a SpectrumValue (element to element multiplication) | |
| void | Multiply (double s) |
| Multiplies for a flat value to all the current elements. | |
| void | Pow (double exp) |
| Modifies each element so that it each element is raised to the exponent. | |
| void | ShiftLeft (int n) |
| Shift the values to the left. | |
| void | ShiftRight (int n) |
| Shift the values to the right. | |
| void | Subtract (const SpectrumValue &x) |
| Subtracts a SpectrumValue (element by element subtraction) | |
| void | Subtract (double s) |
| Subtracts a flat value to all the current elements. | |
Private Attributes | |
| Ptr< const SpectrumModel > | m_spectrumModel |
| The spectrum model. | |
| Values | m_values |
| Set of values which implement the codomain of the functions in the Function Space defined by SpectrumValue. | |
Friends | |
| double | Integral (const SpectrumValue &arg) |
| SpectrumValue | Log (const SpectrumValue &arg) |
| SpectrumValue | Log10 (const SpectrumValue &arg) |
| SpectrumValue | Log2 (const SpectrumValue &arg) |
| double | Norm (const SpectrumValue &x) |
| bool | operator!= (const SpectrumValue &lhs, const SpectrumValue &rhs) |
| Compare two spectrum values. | |
| SpectrumValue | operator* (const SpectrumValue &lhs, const SpectrumValue &rhs) |
| multiplication component-by-component (Schur product) | |
| SpectrumValue | operator* (const SpectrumValue &lhs, double rhs) |
| multiplication by a scalar | |
| SpectrumValue | operator* (double lhs, const SpectrumValue &rhs) |
| multiplication of a scalar | |
| SpectrumValue | operator+ (const SpectrumValue &lhs, const SpectrumValue &rhs) |
| addition operator | |
| SpectrumValue | operator+ (const SpectrumValue &lhs, double rhs) |
| addition operator | |
| SpectrumValue | operator+ (const SpectrumValue &rhs) |
| unary plus operator | |
| SpectrumValue | operator+ (double lhs, const SpectrumValue &rhs) |
| addition operator | |
| SpectrumValue | operator- (const SpectrumValue &lhs, const SpectrumValue &rhs) |
| subtraction operator | |
| SpectrumValue | operator- (const SpectrumValue &lhs, double rhs) |
| subtraction operator | |
| SpectrumValue | operator- (const SpectrumValue &rhs) |
| unary minus operator | |
| SpectrumValue | operator- (double lhs, const SpectrumValue &rhs) |
| subtraction operator | |
| SpectrumValue | operator/ (const SpectrumValue &lhs, const SpectrumValue &rhs) |
| division component-by-component | |
| SpectrumValue | operator/ (const SpectrumValue &lhs, double rhs) |
| division by a scalar | |
| SpectrumValue | operator/ (double lhs, const SpectrumValue &rhs) |
| division of a scalar | |
| bool | operator== (const SpectrumValue &lhs, const SpectrumValue &rhs) |
| Compare two spectrum values. | |
| SpectrumValue | Pow (const SpectrumValue &lhs, double rhs) |
| SpectrumValue | Pow (double lhs, const SpectrumValue &rhs) |
| double | Prod (const SpectrumValue &x) |
| double | Sum (const SpectrumValue &x) |
Set of values corresponding to a given SpectrumModel.
This class implements a Function Space which can represent any function 
Every instance of this class represent a particular function 

To every possible value of 
The intended use of this class is to represent frequency-dependent things, such as power spectral densities, frequency-dependent propagation losses, spectral masks, etc.
Definition at line 49 of file spectrum-value.h.
| typedef void(* ns3::SpectrumValue::TracedCallback) (Ptr< SpectrumValue > value) |
TracedCallback signature for SpectrumValue.
| [in] | value | Value of the traced variable. |
Ptr<SpectrumPhy> argument is deprecated and will be changed to Ptr<const SpectrumPhy> in a future release. Definition at line 562 of file spectrum-value.h.
| ns3::SpectrumValue::SpectrumValue | ( | Ptr< const SpectrumModel > | sm | ) |
SpectrumValue constructor.
| sm | pointer to the SpectrumModel which implements the set of frequencies to which the values will be referring. |
Definition at line 23 of file spectrum-value.cc.
References m_spectrumModel, and m_values.
Referenced by Add(), Divide(), Integral, Log, Log10, Log2, Multiply(), Norm, operator!=, operator*, operator*, operator*, operator*=(), operator+, operator+, operator+, operator+, operator+=(), operator-, operator-, operator-, operator-, operator-=(), operator/, operator/, operator/, operator/=(), operator<<(), operator==, operator>>(), Pow, Pow, Prod, Subtract(), and Sum.
Here is the caller graph for this function:| ns3::SpectrumValue::SpectrumValue | ( | ) |
Definition at line 19 of file spectrum-value.cc.
|
private |
Add a SpectrumValue (element to element addition)
| x | SpectrumValue |
Definition at line 90 of file spectrum-value.cc.
References SpectrumValue(), m_spectrumModel, m_values, and NS_ASSERT.
Referenced by operator+=(), operator+=(), and Subtract().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Add a flat value to all the current elements.
| s | flat value |
Definition at line 107 of file spectrum-value.cc.
References m_values.
|
private |
| Bands::const_iterator ns3::SpectrumValue::ConstBandsBegin | ( | ) | const |
Definition at line 78 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by ns3::ShannonSpectrumErrorModel::EvaluateChunk(), and Integral.
Here is the caller graph for this function:| Bands::const_iterator ns3::SpectrumValue::ConstBandsEnd | ( | ) | const |
Definition at line 84 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by ns3::ShannonSpectrumErrorModel::EvaluateChunk(), and Integral.
Here is the caller graph for this function:| Values::const_iterator ns3::SpectrumValue::ConstValuesBegin | ( | ) | const |
Definition at line 54 of file spectrum-value.cc.
References m_values.
Referenced by ns3::LteUePhy::ComputeAvgSinr(), ns3::LteAmc::CreateCqiFeedbacks(), ns3::LteEnbPhy::CreatePuschCqiReport(), ns3::LteEnbPhy::CreateSrsCqiReport(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteMiErrorModel::GetPcfichPdcchError(), Integral, and ns3::operator<<().
Here is the caller graph for this function:| Values::const_iterator ns3::SpectrumValue::ConstValuesEnd | ( | ) | const |
Definition at line 60 of file spectrum-value.cc.
References m_values.
Referenced by ns3::LteUePhy::ComputeAvgSinr(), ns3::LteAmc::CreateCqiFeedbacks(), ns3::LteEnbPhy::CreatePuschCqiReport(), ns3::LteEnbPhy::CreateSrsCqiReport(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteMiErrorModel::GetPcfichPdcchError(), Integral, and ns3::operator<<().
Here is the caller graph for this function:| Ptr< SpectrumValue > ns3::SpectrumValue::Copy | ( | ) | const |
Definition at line 366 of file spectrum-value.cc.
References ns3::Create(), and m_spectrumModel.
Referenced by LteUplinkSrsSinrTestCase::ReportSinr().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Divides by a SpectrumValue (element to element division)
| x | SpectrumValue |
Definition at line 171 of file spectrum-value.cc.
References SpectrumValue(), m_spectrumModel, m_values, and NS_ASSERT.
Referenced by operator/=(), and operator/=().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Divides by a flat value to all the current elements.
| s | flat value |
Definition at line 188 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Modifies each element so that it is the base raised to each element value.
| base | the base |
Definition at line 258 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
| Ptr< const SpectrumModel > ns3::SpectrumValue::GetSpectrumModel | ( | ) | const |
Definition at line 48 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by ns3::LteChunkProcessor::EvaluateChunk().
Here is the caller graph for this function:| SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid | ( | ) | const |
Definition at line 42 of file spectrum-value.cc.
References m_spectrumModel.
|
inline |
Provides the direct access to the underlying std::vector<double> that stores the spectrum values.
Definition at line 180 of file spectrum-value.h.
References m_values.
|
inline |
Provides the direct read-only access to the underlying std::vector<double> that stores the spectrum values.
Definition at line 190 of file spectrum-value.h.
References m_values.
| uint32_t ns3::SpectrumValue::GetValuesN | ( | ) | const |
Get the number of values stored in the array.
Definition at line 651 of file spectrum-value.cc.
References m_values.
|
private |
Applies a Log to each the elements.
Definition at line 297 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Applies a Log10 to each the elements.
Definition at line 271 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Applies a Log2 to each the elements.
Definition at line 284 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Multiplies for a SpectrumValue (element to element multiplication)
| x | SpectrumValue |
Definition at line 142 of file spectrum-value.cc.
References SpectrumValue(), m_spectrumModel, m_values, and NS_ASSERT.
Referenced by operator*=(), and operator*=().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Multiplies for a flat value to all the current elements.
| s | flat value |
Definition at line 159 of file spectrum-value.cc.
References m_values.
| SpectrumValue & ns3::SpectrumValue::operator*= | ( | const SpectrumValue & | rhs | ) |
Multiply *this by the Right Hand Side of the operator, component by component.
| rhs | the Right Hand Side |
Definition at line 580 of file spectrum-value.cc.
References SpectrumValue(), and Multiply().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator*= | ( | double | rhs | ) |
Multiply every component of *this by the value of the Right Hand Side of the operator.
| rhs | the Right Hand Side |
Definition at line 608 of file spectrum-value.cc.
References Multiply().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator+= | ( | const SpectrumValue & | rhs | ) |
Add the Right Hand Side of the operator to *this, component by component.
| rhs | the Right Hand Side |
Definition at line 566 of file spectrum-value.cc.
References SpectrumValue(), and Add().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator+= | ( | double | rhs | ) |
Add the value of the Right Hand Side of the operator to all components of *this.
| rhs | the Right Hand Side |
Definition at line 594 of file spectrum-value.cc.
References Add().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator-= | ( | const SpectrumValue & | rhs | ) |
Subtract the Right Hand Side of the operator from *this, component by component.
| rhs | the Right Hand Side |
Definition at line 573 of file spectrum-value.cc.
References SpectrumValue(), and Subtract().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator-= | ( | double | rhs | ) |
Subtract the value of the Right Hand Side of the operator from all components of *this.
| rhs | the Right Hand Side |
Definition at line 601 of file spectrum-value.cc.
References Subtract().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator/= | ( | const SpectrumValue & | rhs | ) |
Divide *this by the Right Hand Side of the operator, component by component.
| rhs | the Right Hand Side |
Definition at line 587 of file spectrum-value.cc.
References SpectrumValue(), and Divide().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator/= | ( | double | rhs | ) |
Divide every component of *this by the value of the Right Hand Side of the operator.
| rhs | the Right Hand Side |
Definition at line 615 of file spectrum-value.cc.
References Divide().
Here is the call graph for this function:| SpectrumValue ns3::SpectrumValue::operator<< | ( | int | n | ) | const |
left shift operator
| n | position to shift |
Definition at line 634 of file spectrum-value.cc.
References SpectrumValue().
Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator= | ( | double | rhs | ) |
Assign each component of *this to the value of the Right Hand Side of the operator.
| rhs |
Definition at line 622 of file spectrum-value.cc.
References m_values.
| SpectrumValue ns3::SpectrumValue::operator>> | ( | int | n | ) | const |
right shift operator
| n | position to shift |
Definition at line 643 of file spectrum-value.cc.
References SpectrumValue().
Here is the call graph for this function:| double & ns3::SpectrumValue::operator[] | ( | size_t | index | ) |
Access value at given frequency index.
| index | the given frequency index |
Definition at line 30 of file spectrum-value.cc.
References m_values.
| const double & ns3::SpectrumValue::operator[] | ( | size_t | index | ) | const |
Access value at given frequency index.
| index | the given frequency index |
Definition at line 36 of file spectrum-value.cc.
References m_values.
|
private |
Modifies each element so that it each element is raised to the exponent.
| exp | the exponent |
Definition at line 245 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
inline |
Directly set the values by moving the values from the input std::vector<double>
| values | a reference to the std::vector<double> to be moved |
Definition at line 167 of file spectrum-value.h.
References m_spectrumModel, m_values, and NS_ASSERT_MSG.
|
inline |
Directly set the values using the std::vector<double>
| values | a reference to the std::vector<double> |
Definition at line 155 of file spectrum-value.h.
References m_spectrumModel, m_values, and NS_ASSERT_MSG.
|
private |
Shift the values to the left.
| n | number of positions to shift |
Definition at line 213 of file spectrum-value.cc.
References m_values.
|
private |
Shift the values to the right.
| n | number of positions to shift |
Definition at line 229 of file spectrum-value.cc.
References m_values.
|
private |
Subtracts a SpectrumValue (element by element subtraction)
| x | SpectrumValue |
Definition at line 119 of file spectrum-value.cc.
References SpectrumValue(), m_spectrumModel, m_values, and NS_ASSERT.
Referenced by operator-=(), and operator-=().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Subtracts a flat value to all the current elements.
| s | flat value |
Definition at line 136 of file spectrum-value.cc.
References Add().
Here is the call graph for this function:Get the value element at the position.
| pos | position |
Definition at line 657 of file spectrum-value.cc.
References m_values.
| Values::iterator ns3::SpectrumValue::ValuesBegin | ( | ) |
Definition at line 66 of file spectrum-value.cc.
References m_values.
| Values::iterator ns3::SpectrumValue::ValuesEnd | ( | ) |
Definition at line 72 of file spectrum-value.cc.
References m_values.
|
friend |
| arg | the argument |

Definition at line 349 of file spectrum-value.cc.
References SpectrumValue(), ConstBandsBegin(), ConstBandsEnd(), ConstValuesBegin(), ConstValuesEnd(), and NS_ASSERT.
|
friend |
| arg | the argument |
Definition at line 558 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
| arg | the argument |
Definition at line 542 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
| arg | the argument |
Definition at line 550 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
| x | the operand |
Definition at line 310 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
Compare two spectrum values.
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 417 of file spectrum-value.cc.
References SpectrumValue(), and m_values.
|
friend |
multiplication component-by-component (Schur product)
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 464 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
multiplication by a scalar
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 472 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
multiplication of a scalar
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 480 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
addition operator
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 403 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
addition operator
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 423 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
unary plus operator
| rhs | Right Hand Side of the operator |
Definition at line 512 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
addition operator
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 431 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
subtraction operator
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 439 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
subtraction operator
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 448 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
unary minus operator
| rhs | Right Hand Side of the operator |
Definition at line 518 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
subtraction operator
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 456 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
division component-by-component
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 488 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
division by a scalar
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 496 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
division of a scalar
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 504 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
Compare two spectrum values.
| lhs | Left Hand Side of the operator |
| rhs | Right Hand Side of the operator |
Definition at line 411 of file spectrum-value.cc.
References SpectrumValue(), and m_values.
|
friend |
| lhs | the base |
| rhs | the exponent |
Definition at line 534 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
| lhs | the base |
| rhs | the exponent |
Definition at line 526 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
| x | the operand |
Definition at line 336 of file spectrum-value.cc.
References SpectrumValue().
|
friend |
| x | the operand |
Definition at line 323 of file spectrum-value.cc.
References SpectrumValue().
|
private |
The spectrum model.
Definition at line 645 of file spectrum-value.h.
Referenced by SpectrumValue(), Add(), ConstBandsBegin(), ConstBandsEnd(), Copy(), Divide(), GetSpectrumModel(), GetSpectrumModelUid(), Multiply(), SetValues(), SetValues(), and Subtract().
|
private |
Set of values which implement the codomain of the functions in the Function Space defined by SpectrumValue.
There is no restriction on what these values represent (a transmission power density, a propagation loss, etc.).
Definition at line 654 of file spectrum-value.h.
Referenced by SpectrumValue(), Add(), Add(), ChangeSign(), ConstValuesBegin(), ConstValuesEnd(), Divide(), Divide(), Exp(), GetValues(), GetValues(), GetValuesN(), Log(), Log10(), Log2(), Multiply(), Multiply(), operator!=, operator=(), operator==, operator[](), operator[](), Pow(), SetValues(), SetValues(), ShiftLeft(), ShiftRight(), Subtract(), ValuesAt(), ValuesBegin(), and ValuesEnd().