Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
FIX::FieldBase Class Reference

Base representation of all Field classes. More...

#include <Field.h>

Inheritance diagram for FIX::FieldBase:
Inheritance graph
[legend]
Collaboration diagram for FIX::FieldBase:
Collaboration graph
[legend]

Classes

class  field_metrics
 Class used to store field metrics like total length and checksum. More...
 

Public Member Functions

 FieldBase (int tag, const std::string &string)
 
virtual ~FieldBase ()
 
 FieldBase (const FieldBase &rhs)
 
FieldBaseoperator= (const FieldBase &rhs)
 
void swap (FieldBase &rhs)
 
void setTag (int tag)
 
void setField (int field)
 
void setString (const std::string &string)
 
int getTag () const
 Get the fields integer tag. More...
 
int getField () const
 
const std::string & getString () const
 Get the string representation of the fields value. More...
 
const std::string & getFixString () const
 Get the string representation of the Field (i.e.) 55=MSFT[SOH]. More...
 
size_t getLength () const
 Get the length of the fields string representation. More...
 
int getTotal () const
 Get the total value the fields characters added together. More...
 
bool operator< (const FieldBase &field) const
 Compares fields based on their tag numbers. More...
 

Private Member Functions

 FieldBase (int tag, std::string::const_iterator valueStart, std::string::const_iterator valueEnd, std::string::const_iterator tagStart, std::string::const_iterator tagEnd)
 Constructor which also calculates field metrics. More...
 
void calculate () const
 
void encodeTo (std::string &result) const
 Serializes string representation of the Field to input string. More...
 

Static Private Member Functions

static field_metrics no_metrics ()
 
static field_metrics calculateMetrics (std::string::const_iterator const start, std::string::const_iterator const end)
 Calculate metrics for any input string. More...
 
static field_metrics calculateMetrics (const std::string &field)
 

Private Attributes

int m_tag
 
std::string m_string
 
std::string m_data
 
field_metrics m_metrics
 

Friends

class Message
 

Detailed Description

Base representation of all Field classes.

This base class is the lowest common denominator of all fields. It keeps all fields in its most generic string representation with its integer tag.

Definition at line 64 of file Field.h.

Constructor & Destructor Documentation

◆ FieldBase() [1/3]

FIX::FieldBase::FieldBase ( int  tag,
std::string::const_iterator  valueStart,
std::string::const_iterator  valueEnd,
std::string::const_iterator  tagStart,
std::string::const_iterator  tagEnd 
)
inlineprivate

Constructor which also calculates field metrics.

Definition at line 111 of file Field.h.

116  {
117  std::swap( m_tag, rhs.m_tag );
118  std::swap( m_metrics, rhs.m_metrics );
119  m_string.swap( rhs.m_string );

◆ FieldBase() [2/3]

FIX::FieldBase::FieldBase ( int  tag,
const std::string &  string 
)
inline

Definition at line 122 of file Field.h.

124  {

References m_tag.

◆ ~FieldBase()

virtual FIX::FieldBase::~FieldBase ( )
inlinevirtual

Definition at line 126 of file Field.h.

132 {

◆ FieldBase() [3/3]

FIX::FieldBase::FieldBase ( const FieldBase rhs)
inline

Definition at line 128 of file Field.h.

132  {
133  setTag( field );
134  }

Member Function Documentation

◆ calculate()

void FIX::FieldBase::calculate ( ) const
inlineprivate

Definition at line 215 of file Field.h.

216  {
217  int checksum = 0;
218  for ( std::string::const_iterator str = start; str != end; ++str )
219  checksum += (unsigned char)( *str );
220 

◆ calculateMetrics() [1/2]

static field_metrics FIX::FieldBase::calculateMetrics ( const std::string &  field)
inlinestaticprivate

Definition at line 261 of file Field.h.

262 : FieldBase( field, data ) {}
263  StringField( int field )
264 : FieldBase( field, "" ) {}

◆ calculateMetrics() [2/2]

static field_metrics FIX::FieldBase::calculateMetrics ( std::string::const_iterator const  start,
std::string::const_iterator const  end 
)
inlinestaticprivate

Calculate metrics for any input string.

Definition at line 244 of file Field.h.

244 {
245  stream << field.getString();
246  return stream;
247 }
248 
249 inline void swap( FieldBase& lhs, FieldBase& rhs )
250 {
251  lhs.swap( rhs );
252 }
253 
258 class StringField : public FieldBase
259 {

◆ encodeTo()

void FIX::FieldBase::encodeTo ( std::string &  result) const
inlineprivate

Serializes string representation of the Field to input string.

Definition at line 223 of file Field.h.

231  {
232  return calculateMetrics( field.begin(), field.end() );
233  }
234 
235  int m_tag;
236  std::string m_string;

Referenced by setTag().

◆ getField()

int FIX::FieldBase::getField ( ) const
inline
Deprecated:
Use getTag

Definition at line 179 of file Field.h.

180  { return m_tag < field.m_tag; }

References m_tag.

◆ getFixString()

const std::string& FIX::FieldBase::getFixString ( ) const
inline

Get the string representation of the Field (i.e.) 55=MSFT[SOH].

Definition at line 187 of file Field.h.

193  {

◆ getLength()

size_t FIX::FieldBase::getLength ( ) const
inline

Get the length of the fields string representation.

Definition at line 196 of file Field.h.

208  {

◆ getString()

const std::string& FIX::FieldBase::getString ( ) const
inline

◆ getTag()

int FIX::FieldBase::getTag ( ) const
inline

◆ getTotal()

int FIX::FieldBase::getTotal ( ) const
inline

Get the total value the fields characters added together.

Definition at line 203 of file Field.h.

208  {

◆ no_metrics()

static field_metrics FIX::FieldBase::no_metrics ( )
inlinestaticprivate

Definition at line 238 of file Field.h.

Referenced by operator=().

◆ operator<()

bool FIX::FieldBase::operator< ( const FieldBase field) const
inline

Compares fields based on their tag numbers.

Definition at line 210 of file Field.h.

◆ operator=()

FieldBase& FIX::FieldBase::operator= ( const FieldBase rhs)
inline

Definition at line 136 of file Field.h.

137  {
138  m_string = string;
139  m_metrics = no_metrics();
140  m_data.clear();
141  }
142 
144  int getTag() const

References m_data, m_metrics, m_string, and no_metrics().

◆ setField()

void FIX::FieldBase::setField ( int  field)
inline
Deprecated:
Use setTag

Definition at line 162 of file Field.h.

166  {

◆ setString()

void FIX::FieldBase::setString ( const std::string &  string)
inline

◆ setTag()

void FIX::FieldBase::setTag ( int  tag)
inline

Definition at line 154 of file Field.h.

157  {
158  if( m_data.empty() )
159  encodeTo( m_data );

References encodeTo(), and m_data.

◆ swap()

void FIX::FieldBase::swap ( FieldBase rhs)
inline

Definition at line 146 of file Field.h.

149  { return getTag(); }
150 
152  const std::string& getString() const

References getTag().

Friends And Related Function Documentation

◆ Message

friend class Message
friend

Definition at line 108 of file Field.h.

Member Data Documentation

◆ m_data

std::string FIX::FieldBase::m_data
mutableprivate

Definition at line 268 of file Field.h.

Referenced by operator=(), and setTag().

◆ m_metrics

field_metrics FIX::FieldBase::m_metrics
mutableprivate

Definition at line 269 of file Field.h.

Referenced by getString(), FIX::FieldBase::field_metrics::isValid(), and operator=().

◆ m_string

std::string FIX::FieldBase::m_string
private

Definition at line 267 of file Field.h.

Referenced by FIX::FieldBase::field_metrics::isValid(), and operator=().

◆ m_tag

int FIX::FieldBase::m_tag
private

The documentation for this class was generated from the following file:
FIX::FieldBase::m_data
std::string m_data
Definition: Field.h:268
FIX::FieldBase::m_string
std::string m_string
Definition: Field.h:267
FIX::FieldBase::no_metrics
static field_metrics no_metrics()
Definition: Field.h:238
swap
void swap(T &lhs, T &rhs)
Definition: pugixml.cpp:5991
FIX::FieldBase::encodeTo
void encodeTo(std::string &result) const
Serializes string representation of the Field to input string.
Definition: Field.h:223
FIX::FieldBase::setTag
void setTag(int tag)
Definition: Field.h:154
FIX::FieldBase::swap
void swap(FieldBase &rhs)
Definition: Field.h:146
FIX::FieldBase::getTag
int getTag() const
Get the fields integer tag.
Definition: Field.h:175
FIX::FieldBase::m_tag
int m_tag
Definition: Field.h:266
FIX::FieldBase::calculateMetrics
static field_metrics calculateMetrics(std::string::const_iterator const start, std::string::const_iterator const end)
Calculate metrics for any input string.
Definition: Field.h:244
FIX::FieldBase::m_metrics
field_metrics m_metrics
Definition: Field.h:269
FIX::FieldBase::FieldBase
FieldBase(int tag, std::string::const_iterator valueStart, std::string::const_iterator valueEnd, std::string::const_iterator tagStart, std::string::const_iterator tagEnd)
Constructor which also calculates field metrics.
Definition: Field.h:111
FIX::FieldBase::getString
const std::string & getString() const
Get the string representation of the fields value.
Definition: Field.h:183

Generated on Thu Apr 23 2020 04:32:03 for QuickFIX by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2001