EMA C++ Edition
List of all members
refinitiv::ema::access::Vector Class Reference

Vector is a homogeneous container of complex data type entries. More...

Inheritance diagram for refinitiv::ema::access::Vector:
refinitiv::ema::access::ComplexType refinitiv::ema::access::Data

Public Member Functions

Constructor
 Vector ()
  More...
 
Destructor
virtual ~Vector ()
  More...
 
Accessors
DataType::DataTypeEnum getDataType () const
  More...
 
Data::DataCode getCode () const
  More...
 
const EmaBuffergetAsHex () const
  More...
 
const EmaStringtoString () const
  More...
 
const EmaStringtoString (const refinitiv::ema::rdm::DataDictionary &dictionary) const
  More...
 
bool forth () const
  More...
 
void reset () const
  More...
 
bool hasTotalCountHint () const
  More...
 
bool getSortable () const
  More...
 
UInt32 getTotalCountHint () const
  More...
 
const SummaryDatagetSummaryData () const
  More...
 
const VectorEntrygetEntry () const
  More...
 
- Public Member Functions inherited from refinitiv::ema::access::ComplexType
virtual ~ComplexType ()
  More...
 
- Public Member Functions inherited from refinitiv::ema::access::Data
const EmaStringgetCodeAsString () const
  More...
 
 operator const char * () const
  More...
 
virtual ~Data ()
  More...
 

Operations

Vectorclear ()
  More...
 
Vectoradd (UInt32 position, VectorEntry::VectorAction action, const ComplexType &value, const EmaBuffer &permissionData=EmaBuffer())
  More...
 
Vectoradd (UInt32 position, VectorEntry::VectorAction action, const EmaBuffer &permissionData=EmaBuffer())
  More...
 
const Vectorcomplete ()
  More...
 
Vectorsortable (bool sortable=false)
  More...
 
VectortotalCountHint (UInt32 totalCountHint)
  More...
 
VectorsummaryData (const ComplexType &data)
  More...
 

Additional Inherited Members

- Public Types inherited from refinitiv::ema::access::Data
enum  DataCode {
  NoCodeEnum = 0 ,
  BlankEnum = 1
}
 
- Protected Member Functions inherited from refinitiv::ema::access::ComplexType
 ComplexType ()
 
- Protected Member Functions inherited from refinitiv::ema::access::Data
 Data ()
 

Detailed Description

Vector entries are identified by index.

Vector supports two methods of adding containers; they are:

The first method of adding of already populated containers allows for easy data manipulation but incurs additional memory copy. This method is useful in applications extracting data containers from some messages or containers and then setting them on other containers.

The second method allows for fast container population since it avoids additional memory copy incurred by the first method. This method is useful in source applications setting OMM data from native data formats.

The following code snippet shows addition of entry and summaryData to Vector.

FieldList fList;
fList.addInt( 1, 1 ).addUInt( 100, 2 ).addArray( 2000, Array().addInt( 1 ).addInt( 2 ).complete() ).complete();
Vector vector;
vector.sortable( true ).
summaryData( fList ).
add( 1, VectorEntry::SetEnum, fList ).
friend class FieldList
Definition: Data.h:133
Vector & add(UInt32 position, VectorEntry::VectorAction action, const ComplexType &value, const EmaBuffer &permissionData=EmaBuffer())
Vector & totalCountHint(UInt32 totalCountHint)
Vector & summaryData(const ComplexType &data)

The following code snippet shows extracting of Vector and its content.

void decodeVector( const Vector& vector )
{
switch ( vector.getSummaryData().getDataType() )
{
decodeFieldList( vector.getSummaryData().getFieldList() );
break;
break;
}
while ( vector.forth() )
{
const VectorEntry& vEntry = vector.getEntry();
switch ( vEntry.getLoad().getDataType() )
{
decodeFieldList( vEntry.getLoad().getFieldList() );
break;
break;
}
}
}
friend class VectorEntry
Definition: Data.h:143
Remarks
These two methods apply to containers only; e.g.,: ElementList, FieldList, FilterList, Map, Series, and Vector.
Objects of this class are intended to be short lived or rather transitional.
This class is designed to efficiently perform setting and extracting of Vector and its content.
Objects of this class are not cache-able.
All methods in this class are Lock-free Method.
See also
Data, VectorEntry, SummaryData, ReqMsg, RefreshMsg, UpdateMsg, StatusMsg, GenericMsg, PostMsg, AckMsg, ElementList, Map, Vector, Series, FilterList, OmmOpaque, OmmXml, OmmAnsiPage, OmmError, EmaString, EmaBuffer

Definition at line 122 of file Vector.h.

Constructor & Destructor Documentation

◆ Vector()

refinitiv::ema::access::Vector::Vector ( )

Constructs Vector.

◆ ~Vector()

virtual refinitiv::ema::access::Vector::~Vector ( )
virtual

Destructor.

Member Function Documentation

◆ add() [1/2]

Vector& refinitiv::ema::access::Vector::add ( UInt32  position,
VectorEntry::VectorAction  action,
const ComplexType value,
const EmaBuffer permissionData = EmaBuffer() 
)

Adds complex OMM data identified by a position.

Remarks
All entries must have same complex data type
Exceptions
OmmInvalidUsageExceptionif an error is detected (exception will specify the cause of the error)
Parameters
[in]positionspecifies position of this entry in Vector
[in]actionspecifies action to be performed on this entry
[in]valuecomplex type contained in this entry
[in]permissionDataspecifies permission data for this entry
Returns
reference to this object

◆ add() [2/2]

Vector& refinitiv::ema::access::Vector::add ( UInt32  position,
VectorEntry::VectorAction  action,
const EmaBuffer permissionData = EmaBuffer() 
)

Adds no payload identified by a position.

Exceptions
OmmInvalidUsageExceptionif an error is detected (exception will specify the cause of the error)
Parameters
[in]positionspecifies position of this entry in Vector
[in]actionspecifies action to be performed on this entry
[in]permissionDataspecifies permission data for this entry
Returns
reference to this object

◆ clear()

Vector& refinitiv::ema::access::Vector::clear ( )

Clears the Vector.

Remarks
Invoking clear() method clears all the values and resets all the defaults
Returns
reference to this object

◆ complete()

const Vector& refinitiv::ema::access::Vector::complete ( )

Completes encoding of the Vector.

Exceptions
OmmInvalidUsageExceptionif an error is detected (exception will specify the cause of the error)
Returns
const reference to this object

◆ forth()

bool refinitiv::ema::access::Vector::forth ( ) const

Iterates through a list of Data of any DataType. Typical usage is to extract the entry during each iteration via getEntry().

Returns
false at the end of Vector; true otherwise

◆ getAsHex()

const EmaBuffer& refinitiv::ema::access::Vector::getAsHex ( ) const
virtual

Returns a buffer that in turn provides an alphanumeric null-terminated hexadecimal string representation.

Returns
EmaBuffer with the message hex information

Implements refinitiv::ema::access::Data.

◆ getCode()

Data::DataCode refinitiv::ema::access::Vector::getCode ( ) const
virtual

Returns the Code, which indicates a special state of a DataType.

Returns
Data::NoCodeEnum

Implements refinitiv::ema::access::Data.

◆ getDataType()

DataType::DataTypeEnum refinitiv::ema::access::Vector::getDataType ( ) const
virtual

Returns the DataType, which is the type of Omm data. Results in this class type.

Returns
DataType::VectorEnum

Implements refinitiv::ema::access::Data.

◆ getEntry()

const VectorEntry& refinitiv::ema::access::Vector::getEntry ( ) const

Returns Entry.

Exceptions
OmmInvalidUsageExceptionif forth() was not called first
Returns
VectorEntry

◆ getSortable()

bool refinitiv::ema::access::Vector::getSortable ( ) const

Returns Sortable.

Returns
true if sortable flag is set; false otherwise

◆ getSummaryData()

const SummaryData& refinitiv::ema::access::Vector::getSummaryData ( ) const

Returns the contained summaryData Data based on the summaryData DataType.

Remarks
SummaryData contains no data if SummaryData::getDataType() returns DataType::NoDataEnum
Returns
SummaryData

◆ getTotalCountHint()

UInt32 refinitiv::ema::access::Vector::getTotalCountHint ( ) const

Returns TotalCountHint.

Exceptions
OmmInvalidUsageExceptionif hasTotalCountHint() returns false
Returns
total count hint

◆ hasTotalCountHint()

bool refinitiv::ema::access::Vector::hasTotalCountHint ( ) const

Indicates presence of TotalCountHint.

Returns
true if total count hint is set; false otherwise

◆ reset()

void refinitiv::ema::access::Vector::reset ( ) const

Resets iteration to start of container.

◆ sortable()

Vector& refinitiv::ema::access::Vector::sortable ( bool  sortable = false)

Specifies Sortable.

Parameters
[in]sortablespecifies if this object is sortable
Returns
reference to this object

◆ summaryData()

Vector& refinitiv::ema::access::Vector::summaryData ( const ComplexType data)

Specifies the SummaryData OMM Data.

Remarks
Call to summaryData( ) must happen prior to calling the add( ) method
Exceptions
OmmInvalidUsageExceptionif an error is detected (exception will specify the cause of the error)
Parameters
[in]summaryDataspecifies complex type as summaryData
Returns
reference to this object

◆ toString() [1/2]

const EmaString& refinitiv::ema::access::Vector::toString ( ) const
virtual

Returns a string representation of the class instance.

Returns
string representation of the class instance

Implements refinitiv::ema::access::Data.

◆ toString() [2/2]

const EmaString& refinitiv::ema::access::Vector::toString ( const refinitiv::ema::rdm::DataDictionary dictionary) const

Returns a string representation of the class instance for just encoded object.

Parameters
[in]dictionaryuse for toString() conversion
Returns
string representation of the class instance

◆ totalCountHint()

Vector& refinitiv::ema::access::Vector::totalCountHint ( UInt32  totalCountHint)

Specifies TotalCountHint.

Parameters
[in]totalCountHintspecifies total count hint
Returns
reference to this object