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 66 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 114 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 );
120  m_data.swap( rhs.m_data );
121  }
122 

Referenced by FIX::UtcTimeStampField::getValue(), FIX::UtcDateField::getValue(), and FIX::UtcTimeOnlyField::getValue().

◆ FieldBase() [2/3]

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

Definition at line 125 of file Field.h.

132  {

◆ ~FieldBase()

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

Definition at line 129 of file Field.h.

132 {

◆ FieldBase() [3/3]

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

Definition at line 131 of file Field.h.

132  {
133  setTag( field );
134  }
135 
136  void setString( const std::string& string )
137  {

References setTag().

Member Function Documentation

◆ calculate()

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

Definition at line 218 of file Field.h.

Referenced by setField(), and setString().

◆ calculateMetrics() [1/2]

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

Definition at line 264 of file Field.h.

264 : FieldBase( field, "" ) {}
265 
266  void setValue( const std::string& value )
267  { setString( value ); }

◆ 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 247 of file Field.h.

250 {
251  lhs.swap( rhs );
252 }
253 
258 class StringField : public FieldBase
259 {
260 public:
261  explicit StringField( int field, const std::string& data )
262 : FieldBase( field, data ) {}

◆ encodeTo()

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

Serializes string representation of the Field to input string.

Definition at line 226 of file Field.h.

231  {
232  return calculateMetrics( field.begin(), field.end() );
233  }
234 
235  int m_tag;
236  std::string m_string;
237  mutable std::string m_data;
238  mutable field_metrics m_metrics;
239 };

Referenced by setTag().

◆ getField()

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

Definition at line 182 of file Field.h.

182  :
183 

◆ getFixString()

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

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

Definition at line 190 of file Field.h.

193  {
194  size_t tagLength = FIX::number_of_symbols_in( m_tag );
195  size_t totalLength = tagLength + m_string.length() + 2;
196 

References m_string, m_tag, and FIX::number_of_symbols_in().

◆ getLength()

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

Get the length of the fields string representation.

Definition at line 199 of file Field.h.

208  {

◆ getString()

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

◆ getTag()

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

Get the fields integer tag.

Definition at line 178 of file Field.h.

180  { return m_tag < field.m_tag; }

Referenced by FIX::DataDictionary::iterate(), FIX::operator>=(), swap(), and FIX::DataDictionary::validate().

◆ getTotal()

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

Get the total value the fields characters added together.

Definition at line 206 of file Field.h.

208  {
209  return field_metrics( 0, 0 );
210  }

◆ no_metrics()

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

Definition at line 241 of file Field.h.

244 {

◆ operator<()

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

Compares fields based on their tag numbers.

Definition at line 213 of file Field.h.

◆ operator=()

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

Definition at line 139 of file Field.h.

145  { return m_tag; }
146 

◆ setField()

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

Definition at line 165 of file Field.h.

166  {
167  calculate();
168  return m_metrics.getLength();

References calculate(), FIX::FieldBase::field_metrics::getLength(), and m_metrics.

◆ setString()

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

◆ setTag()

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

Definition at line 157 of file Field.h.

157  {
158  if( m_data.empty() )
159  encodeTo( m_data );
160 
161  return m_data;
162  }

References encodeTo(), and m_data.

Referenced by FieldBase().

◆ swap()

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

Definition at line 149 of file Field.h.

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

References getTag().

Friends And Related Function Documentation

◆ Message

friend class Message
friend

Definition at line 111 of file Field.h.

Member Data Documentation

◆ m_data

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

Definition at line 271 of file Field.h.

Referenced by setTag().

◆ m_metrics

field_metrics FIX::FieldBase::m_metrics
mutableprivate

Definition at line 272 of file Field.h.

Referenced by FIX::FieldBase::field_metrics::getCheckSum(), setField(), and setString().

◆ m_string

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

Definition at line 270 of file Field.h.

Referenced by getFixString().

◆ m_tag

int FIX::FieldBase::m_tag
private

Definition at line 269 of file Field.h.

Referenced by FIX::FieldBase::field_metrics::getCheckSum(), and getFixString().


The documentation for this class was generated from the following file:
FIX::FieldBase::m_data
std::string m_data
Definition: Field.h:271
FIX::number_of_symbols_in
int number_of_symbols_in(const signed_int value)
Definition: FieldConvertors.h:68
FIX::FieldBase::m_string
std::string m_string
Definition: Field.h:270
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:226
FIX::FieldBase::setTag
void setTag(int tag)
Definition: Field.h:157
FIX::FieldBase::getTag
int getTag() const
Get the fields integer tag.
Definition: Field.h:178
FIX::FieldBase::m_tag
int m_tag
Definition: Field.h:269
FIX::FieldBase::setString
void setString(const std::string &string)
Definition: Field.h:170
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:247
FIX::FieldBase::m_metrics
field_metrics m_metrics
Definition: Field.h:272
FIX::FieldBase::field_metrics::getLength
size_t getLength() const
Definition: Field.h:113
FIX::FieldBase::calculate
void calculate() const
Definition: Field.h:218
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:114
FIX::FieldBase::field_metrics::getCheckSum
int getCheckSum() const
Definition: Field.h:116
FIX::FieldBase::getString
const std::string & getString() const
Get the string representation of the fields value.
Definition: Field.h:186

Generated on Wed Apr 29 2020 19:41:30 for QuickFIX by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2001