Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
FIX::FileStore Class Reference

File based implementation of MessageStore. More...

#include <FileStore.h>

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

Public Member Functions

 FileStore (std::string, const SessionID &s)
 
virtual ~FileStore ()
 
bool set (int, const std::string &) throw ( IOException )
 
void get (int, int, std::vector< std::string > &) const throw ( IOException )
 
int getNextSenderMsgSeqNum () const throw ( IOException )
 
int getNextTargetMsgSeqNum () const throw ( IOException )
 
void setNextSenderMsgSeqNum (int value) throw ( IOException )
 
void setNextTargetMsgSeqNum (int value) throw ( IOException )
 
void incrNextSenderMsgSeqNum () throw ( IOException )
 
void incrNextTargetMsgSeqNum () throw ( IOException )
 
UtcTimeStamp getCreationTime () const throw ( IOException )
 
void reset () throw ( IOException )
 
void refresh () throw ( IOException )
 
- Public Member Functions inherited from FIX::MessageStore
virtual ~MessageStore ()
 

Private Types

typedef std::pair< int, int > OffsetSize
 
typedef std::map< int, OffsetSizeNumToOffset
 

Private Member Functions

void open (bool deleteFile)
 
void populateCache ()
 
bool readFromFile (int offset, int size, std::string &msg)
 
void setSeqNum ()
 
void setSession ()
 
bool get (int, std::string &) const throw ( IOException )
 

Private Attributes

MemoryStore m_cache
 
NumToOffset m_offsets
 
std::string m_msgFileName
 
std::string m_headerFileName
 
std::string m_seqNumsFileName
 
std::string m_sessionFileName
 
FILE * m_msgFile
 
FILE * m_headerFile
 
FILE * m_seqNumsFile
 
FILE * m_sessionFile
 

Detailed Description

File based implementation of MessageStore.

Four files are created by this implementation. One for storing outgoing messages, one for indexing message locations, one for storing sequence numbers, and one for storing the session creation time.

The formats of the files are:
   [path]+[BeginString]-[SenderCompID]-[TargetCompID].body
   [path]+[BeginString]-[SenderCompID]-[TargetCompID].header
   [path]+[BeginString]-[SenderCompID]-[TargetCompID].seqnums
   [path]+[BeginString]-[SenderCompID]-[TargetCompID].session

The messages file is a pure stream of FIX messages.

The sequence number file is in the format of
   [SenderMsgSeqNum] : [TargetMsgSeqNum]

The session file is a UTC timestamp in the format of
   YYYYMMDD-HH:MM:SS

Definition at line 81 of file FileStore.h.

Member Typedef Documentation

◆ NumToOffset

typedef std::map< int, OffsetSize > FIX::FileStore::NumToOffset
private

Definition at line 104 of file FileStore.h.

◆ OffsetSize

typedef std::pair< int, int > FIX::FileStore::OffsetSize
private

Definition at line 103 of file FileStore.h.

Constructor & Destructor Documentation

◆ FileStore()

FIX::FileStore::FileStore ( std::string  path,
const SessionID s 
)

Definition at line 34 of file FileStore.cpp.

References FIX::file_appendpath(), FIX::file_mkdir(), FIX::SessionID::getBeginString(), FIX::SessionID::getSenderCompID(), FIX::SessionID::getSessionQualifier(), FIX::SessionID::getTargetCompID(), m_headerFileName, m_msgFileName, m_seqNumsFileName, m_sessionFileName, and open().

Referenced by FIX::FileStoreFactory::create().

35 : m_msgFile( 0 ), m_headerFile( 0 ), m_seqNumsFile( 0 ), m_sessionFile( 0 )
36 {
37  file_mkdir( path.c_str() );
38 
39  if ( path.empty() ) path = ".";
40  const std::string& begin =
41  s.getBeginString().getString();
42  const std::string& sender =
43  s.getSenderCompID().getString();
44  const std::string& target =
45  s.getTargetCompID().getString();
46  const std::string& qualifier =
47  s.getSessionQualifier();
48 
49  std::string sessionid = begin + "-" + sender + "-" + target;
50  if( qualifier.size() )
51  sessionid += "-" + qualifier;
52 
53  std::string prefix
54  = file_appendpath(path, sessionid + ".");
55 
56  m_msgFileName = prefix + "body";
57  m_headerFileName = prefix + "header";
58  m_seqNumsFileName = prefix + "seqnums";
59  m_sessionFileName = prefix + "session";
60 
61  try
62  {
63  open( false );
64  }
65  catch ( IOException & e )
66  {
67  throw ConfigError( e.what() );
68  }
69 }
std::string m_sessionFileName
Definition: FileStore.h:120
std::string m_msgFileName
Definition: FileStore.h:117
FILE * m_msgFile
Definition: FileStore.h:122
std::string file_appendpath(const std::string &path, const std::string &file)
Definition: Utility.cpp:529
void open(bool deleteFile)
Definition: FileStore.cpp:79
std::string m_headerFileName
Definition: FileStore.h:118
void file_mkdir(const char *path)
Definition: Utility.cpp:467
FILE * m_sessionFile
Definition: FileStore.h:125
FILE * m_headerFile
Definition: FileStore.h:123
FILE * m_seqNumsFile
Definition: FileStore.h:124
std::string m_seqNumsFileName
Definition: FileStore.h:119

◆ ~FileStore()

FIX::FileStore::~FileStore ( )
virtual

Definition at line 71 of file FileStore.cpp.

References m_headerFile, m_msgFile, m_seqNumsFile, and m_sessionFile.

72 {
73  if( m_msgFile ) fclose( m_msgFile );
74  if( m_headerFile ) fclose( m_headerFile );
75  if( m_seqNumsFile ) fclose( m_seqNumsFile );
76  if( m_sessionFile ) fclose( m_sessionFile );
77 }
FILE * m_msgFile
Definition: FileStore.h:122
FILE * m_sessionFile
Definition: FileStore.h:125
FILE * m_headerFile
Definition: FileStore.h:123
FILE * m_seqNumsFile
Definition: FileStore.h:124

Member Function Documentation

◆ get() [1/2]

void FIX::FileStore::get ( int  begin,
int  end,
std::vector< std::string > &  result 
) const
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 210 of file FileStore.cpp.

213 {
214  result.clear();
215  std::string msg;
216  for ( int i = begin; i <= end; ++i )
217  {
218  if ( get( i, msg ) )
219  result.push_back( msg );
220  }
221 }

◆ get() [2/2]

bool FIX::FileStore::get ( int  msgSeqNum,
std::string &  msg 
) const
throw (IOException
)
private

Definition at line 311 of file FileStore.cpp.

References m_msgFile, m_msgFileName, and m_offsets.

313 {
314  NumToOffset::const_iterator find = m_offsets.find( msgSeqNum );
315  if ( find == m_offsets.end() ) return false;
316  const OffsetSize& offset = find->second;
317  if ( fseek( m_msgFile, offset.first, SEEK_SET ) )
318  throw IOException( "Unable to seek in file " + m_msgFileName );
319  char* buffer = new char[ offset.second + 1 ];
320  size_t result = fread( buffer, sizeof( char ), offset.second, m_msgFile );
321  if ( ferror( m_msgFile ) || result != (size_t)offset.second )
322  {
323  delete [] buffer;
324  throw IOException( "Unable to read from file " + m_msgFileName );
325  }
326  buffer[ offset.second ] = 0;
327  msg = buffer;
328  delete [] buffer;
329  return true;
330 }
std::string m_msgFileName
Definition: FileStore.h:117
FILE * m_msgFile
Definition: FileStore.h:122
NumToOffset m_offsets
Definition: FileStore.h:115
std::pair< int, int > OffsetSize
Definition: FileStore.h:103

◆ getCreationTime()

UtcTimeStamp FIX::FileStore::getCreationTime ( ) const
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 257 of file FileStore.cpp.

References FIX::MemoryStore::getCreationTime(), and m_cache.

258 {
259  return m_cache.getCreationTime();
260 }
MemoryStore m_cache
Definition: FileStore.h:114
UtcTimeStamp getCreationTime() const
Definition: MessageStore.h:119

◆ getNextSenderMsgSeqNum()

int FIX::FileStore::getNextSenderMsgSeqNum ( ) const
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 223 of file FileStore.cpp.

References FIX::MemoryStore::getNextSenderMsgSeqNum(), and m_cache.

Referenced by open(), and setSeqNum().

224 {
226 }
int getNextSenderMsgSeqNum() const
Definition: MessageStore.h:104
MemoryStore m_cache
Definition: FileStore.h:114

◆ getNextTargetMsgSeqNum()

int FIX::FileStore::getNextTargetMsgSeqNum ( ) const
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 228 of file FileStore.cpp.

References FIX::MemoryStore::getNextTargetMsgSeqNum(), and m_cache.

Referenced by open(), and setSeqNum().

229 {
231 }
MemoryStore m_cache
Definition: FileStore.h:114
int getNextTargetMsgSeqNum() const
Definition: MessageStore.h:106

◆ incrNextSenderMsgSeqNum()

void FIX::FileStore::incrNextSenderMsgSeqNum ( )
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 245 of file FileStore.cpp.

References FIX::MemoryStore::incrNextSenderMsgSeqNum(), m_cache, and setSeqNum().

246 {
248  setSeqNum();
249 }
void incrNextSenderMsgSeqNum()
Definition: MessageStore.h:112
MemoryStore m_cache
Definition: FileStore.h:114
void setSeqNum()
Definition: FileStore.cpp:289

◆ incrNextTargetMsgSeqNum()

void FIX::FileStore::incrNextTargetMsgSeqNum ( )
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 251 of file FileStore.cpp.

References FIX::MemoryStore::incrNextTargetMsgSeqNum(), m_cache, and setSeqNum().

252 {
254  setSeqNum();
255 }
MemoryStore m_cache
Definition: FileStore.h:114
void incrNextTargetMsgSeqNum()
Definition: MessageStore.h:114
void setSeqNum()
Definition: FileStore.cpp:289

◆ open()

void FIX::FileStore::open ( bool  deleteFile)
private

Definition at line 79 of file FileStore.cpp.

References FIX::file_fopen(), FIX::file_unlink(), getNextSenderMsgSeqNum(), getNextTargetMsgSeqNum(), m_headerFile, m_headerFileName, m_msgFile, m_msgFileName, m_seqNumsFile, m_seqNumsFileName, m_sessionFile, m_sessionFileName, populateCache(), setNextSenderMsgSeqNum(), setNextTargetMsgSeqNum(), and setSession().

Referenced by FileStore(), refresh(), and reset().

80 {
81  if ( m_msgFile ) fclose( m_msgFile );
82  if ( m_headerFile ) fclose( m_headerFile );
83  if ( m_seqNumsFile ) fclose( m_seqNumsFile );
84  if ( m_sessionFile ) fclose( m_sessionFile );
85 
86  m_msgFile = 0;
87  m_headerFile = 0;
88  m_seqNumsFile = 0;
89  m_sessionFile = 0;
90 
91  if ( deleteFile )
92  {
93  file_unlink( m_msgFileName.c_str() );
94  file_unlink( m_headerFileName.c_str() );
95  file_unlink( m_seqNumsFileName.c_str() );
96  file_unlink( m_sessionFileName.c_str() );
97  }
98 
99  populateCache();
100  m_msgFile = file_fopen( m_msgFileName.c_str(), "r+" );
101  if ( !m_msgFile ) m_msgFile = file_fopen( m_msgFileName.c_str(), "w+" );
102  if ( !m_msgFile ) throw ConfigError( "Could not open body file: " + m_msgFileName );
103 
104  m_headerFile = file_fopen( m_headerFileName.c_str(), "r+" );
105  if ( !m_headerFile ) m_headerFile = file_fopen( m_headerFileName.c_str(), "w+" );
106  if ( !m_headerFile ) throw ConfigError( "Could not open header file: " + m_headerFileName );
107 
108  m_seqNumsFile = file_fopen( m_seqNumsFileName.c_str(), "r+" );
109  if ( !m_seqNumsFile ) m_seqNumsFile = file_fopen( m_seqNumsFileName.c_str(), "w+" );
110  if ( !m_seqNumsFile ) throw ConfigError( "Could not open seqnums file: " + m_seqNumsFileName );
111 
112  bool setCreationTime = false;
113  m_sessionFile = file_fopen( m_sessionFileName.c_str(), "r" );
114  if ( !m_sessionFile ) setCreationTime = true;
115  else fclose( m_sessionFile );
116 
117  m_sessionFile = file_fopen( m_sessionFileName.c_str(), "r+" );
118  if ( !m_sessionFile ) m_sessionFile = file_fopen( m_sessionFileName.c_str(), "w+" );
119  if ( !m_sessionFile ) throw ConfigError( "Could not open session file" );
120  if ( setCreationTime ) setSession();
121 
124 }
int getNextSenderMsgSeqNum() const
Definition: FileStore.cpp:223
std::string m_sessionFileName
Definition: FileStore.h:120
std::string m_msgFileName
Definition: FileStore.h:117
void setNextTargetMsgSeqNum(int value)
Definition: FileStore.cpp:239
FILE * m_msgFile
Definition: FileStore.h:122
int getNextTargetMsgSeqNum() const
Definition: FileStore.cpp:228
void populateCache()
Definition: FileStore.cpp:126
std::string m_headerFileName
Definition: FileStore.h:118
void setSession()
Definition: FileStore.cpp:300
void file_unlink(const char *path)
Definition: Utility.cpp:515
FILE * m_sessionFile
Definition: FileStore.h:125
void setNextSenderMsgSeqNum(int value)
Definition: FileStore.cpp:233
FILE * m_headerFile
Definition: FileStore.h:123
FILE * file_fopen(const char *path, const char *mode)
Definition: Utility.cpp:487
FILE * m_seqNumsFile
Definition: FileStore.h:124
std::string m_seqNumsFileName
Definition: FileStore.h:119

◆ populateCache()

void FIX::FileStore::populateCache ( )
private

Definition at line 126 of file FileStore.cpp.

References FIX::UtcTimeStampConvertor::convert(), FIX::file_fopen(), FILE_FSCANF, m_cache, m_headerFileName, m_offsets, m_seqNumsFileName, m_sessionFileName, FIX::MemoryStore::setCreationTime(), FIX::MemoryStore::setNextSenderMsgSeqNum(), and FIX::MemoryStore::setNextTargetMsgSeqNum().

Referenced by open().

127 {
128  FILE* headerFile = file_fopen( m_headerFileName.c_str(), "r+" );
129  if ( headerFile )
130  {
131  int num;
132  long offset;
133  size_t size;
134 
135  while ( FILE_FSCANF( headerFile, "%d,%ld,%lu ", &num, &offset, &size ) == 3 )
136  m_offsets[ num ] = std::make_pair( offset, size );
137  fclose( headerFile );
138  }
139 
140  FILE* seqNumsFile = file_fopen( m_seqNumsFileName.c_str(), "r+" );
141  if ( seqNumsFile )
142  {
143  int sender, target;
144  if ( FILE_FSCANF( seqNumsFile, "%d : %d", &sender, &target ) == 2 )
145  {
148  }
149  fclose( seqNumsFile );
150  }
151 
152  FILE* sessionFile = file_fopen( m_sessionFileName.c_str(), "r+" );
153  if ( sessionFile )
154  {
155  char time[ 22 ];
156 #ifdef HAVE_FSCANF_S
157  int result = FILE_FSCANF( sessionFile, "%s", time, 22 );
158 #else
159  int result = FILE_FSCANF( sessionFile, "%s", time );
160 #endif
161  if( result == 1 )
162  {
164  }
165  fclose( sessionFile );
166  }
167 }
std::string m_sessionFileName
Definition: FileStore.h:120
static std::string convert(const UtcTimeStamp &value, bool showMilliseconds=false)
#define FILE_FSCANF
Definition: Utility.h:189
void setNextSenderMsgSeqNum(int value)
Definition: MessageStore.h:108
void setNextTargetMsgSeqNum(int value)
Definition: MessageStore.h:110
MemoryStore m_cache
Definition: FileStore.h:114
std::string m_headerFileName
Definition: FileStore.h:118
FILE * file_fopen(const char *path, const char *mode)
Definition: Utility.cpp:487
NumToOffset m_offsets
Definition: FileStore.h:115
void setCreationTime(const UtcTimeStamp &creationTime)
Definition: MessageStore.h:117
std::string m_seqNumsFileName
Definition: FileStore.h:119

◆ readFromFile()

bool FIX::FileStore::readFromFile ( int  offset,
int  size,
std::string &  msg 
)
private

◆ refresh()

void FIX::FileStore::refresh ( )
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 276 of file FileStore.cpp.

References m_cache, open(), and FIX::MemoryStore::reset().

277 {
278  try
279  {
280  m_cache.reset();
281  open( false );
282  }
283  catch( std::exception& e )
284  {
285  throw IOException( e.what() );
286  }
287 }
void open(bool deleteFile)
Definition: FileStore.cpp:79
MemoryStore m_cache
Definition: FileStore.h:114

◆ reset()

void FIX::FileStore::reset ( )
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 262 of file FileStore.cpp.

References m_cache, open(), FIX::MemoryStore::reset(), and setSession().

263 {
264  try
265  {
266  m_cache.reset();
267  open( true );
268  setSession();
269  }
270  catch( std::exception& e )
271  {
272  throw IOException( e.what() );
273  }
274 }
void open(bool deleteFile)
Definition: FileStore.cpp:79
MemoryStore m_cache
Definition: FileStore.h:114
void setSession()
Definition: FileStore.cpp:300

◆ set()

bool FIX::FileStore::set ( int  msgSeqNum,
const std::string &  msg 
)
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 184 of file FileStore.cpp.

References m_headerFile, m_headerFileName, m_msgFile, m_msgFileName, and m_offsets.

186 {
187  if ( fseek( m_msgFile, 0, SEEK_END ) )
188  throw IOException( "Cannot seek to end of " + m_msgFileName );
189  if ( fseek( m_headerFile, 0, SEEK_END ) )
190  throw IOException( "Cannot seek to end of " + m_headerFileName );
191 
192  long offset = ftell( m_msgFile );
193  if ( offset < 0 )
194  throw IOException( "Unable to get file pointer position from " + m_msgFileName );
195  size_t size = msg.size();
196 
197  if ( fprintf( m_headerFile, "%d,%ld,%lu ", msgSeqNum, offset, size ) < 0 )
198  throw IOException( "Unable to write to file " + m_headerFileName );
199  m_offsets[ msgSeqNum ] = std::make_pair( offset, size );
200  fwrite( msg.c_str(), sizeof( char ), msg.size(), m_msgFile );
201  if ( ferror( m_msgFile ) )
202  throw IOException( "Unable to write to file " + m_msgFileName );
203  if ( fflush( m_msgFile ) == EOF )
204  throw IOException( "Unable to flush file " + m_msgFileName );
205  if ( fflush( m_headerFile ) == EOF )
206  throw IOException( "Unable to flush file " + m_headerFileName );
207  return true;
208 }
std::string m_msgFileName
Definition: FileStore.h:117
FILE * m_msgFile
Definition: FileStore.h:122
std::string m_headerFileName
Definition: FileStore.h:118
FILE * m_headerFile
Definition: FileStore.h:123
NumToOffset m_offsets
Definition: FileStore.h:115

◆ setNextSenderMsgSeqNum()

void FIX::FileStore::setNextSenderMsgSeqNum ( int  value)
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 233 of file FileStore.cpp.

References m_cache, FIX::MemoryStore::setNextSenderMsgSeqNum(), and setSeqNum().

Referenced by open().

234 {
236  setSeqNum();
237 }
void setNextSenderMsgSeqNum(int value)
Definition: MessageStore.h:108
MemoryStore m_cache
Definition: FileStore.h:114
void setSeqNum()
Definition: FileStore.cpp:289

◆ setNextTargetMsgSeqNum()

void FIX::FileStore::setNextTargetMsgSeqNum ( int  value)
throw (IOException
)
virtual

Implements FIX::MessageStore.

Definition at line 239 of file FileStore.cpp.

References m_cache, FIX::MemoryStore::setNextTargetMsgSeqNum(), and setSeqNum().

Referenced by open().

240 {
242  setSeqNum();
243 }
void setNextTargetMsgSeqNum(int value)
Definition: MessageStore.h:110
MemoryStore m_cache
Definition: FileStore.h:114
void setSeqNum()
Definition: FileStore.cpp:289

◆ setSeqNum()

void FIX::FileStore::setSeqNum ( )
private

Definition at line 289 of file FileStore.cpp.

References getNextSenderMsgSeqNum(), getNextTargetMsgSeqNum(), m_seqNumsFile, and m_seqNumsFileName.

Referenced by incrNextSenderMsgSeqNum(), incrNextTargetMsgSeqNum(), setNextSenderMsgSeqNum(), and setNextTargetMsgSeqNum().

290 {
291  rewind( m_seqNumsFile );
292  fprintf( m_seqNumsFile, "%10.10d : %10.10d",
294  if ( ferror( m_seqNumsFile ) )
295  throw IOException( "Unable to write to file " + m_seqNumsFileName );
296  if ( fflush( m_seqNumsFile ) )
297  throw IOException( "Unable to flush file " + m_seqNumsFileName );
298 }
int getNextSenderMsgSeqNum() const
Definition: FileStore.cpp:223
int getNextTargetMsgSeqNum() const
Definition: FileStore.cpp:228
FILE * m_seqNumsFile
Definition: FileStore.h:124
std::string m_seqNumsFileName
Definition: FileStore.h:119

◆ setSession()

void FIX::FileStore::setSession ( )
private

Definition at line 300 of file FileStore.cpp.

References FIX::UtcTimeStampConvertor::convert(), FIX::MemoryStore::getCreationTime(), m_cache, m_sessionFile, and m_sessionFileName.

Referenced by open(), and reset().

301 {
302  rewind( m_sessionFile );
303  fprintf( m_sessionFile, "%s",
305  if ( ferror( m_sessionFile ) )
306  throw IOException( "Unable to write to file " + m_sessionFileName );
307  if ( fflush( m_sessionFile ) )
308  throw IOException( "Unable to flush file " + m_sessionFileName );
309 }
std::string m_sessionFileName
Definition: FileStore.h:120
static std::string convert(const UtcTimeStamp &value, bool showMilliseconds=false)
MemoryStore m_cache
Definition: FileStore.h:114
FILE * m_sessionFile
Definition: FileStore.h:125
UtcTimeStamp getCreationTime() const
Definition: MessageStore.h:119

Member Data Documentation

◆ m_cache

MemoryStore FIX::FileStore::m_cache
private

◆ m_headerFile

FILE* FIX::FileStore::m_headerFile
private

Definition at line 123 of file FileStore.h.

Referenced by open(), set(), and ~FileStore().

◆ m_headerFileName

std::string FIX::FileStore::m_headerFileName
private

Definition at line 118 of file FileStore.h.

Referenced by FileStore(), open(), populateCache(), and set().

◆ m_msgFile

FILE* FIX::FileStore::m_msgFile
private

Definition at line 122 of file FileStore.h.

Referenced by get(), open(), set(), and ~FileStore().

◆ m_msgFileName

std::string FIX::FileStore::m_msgFileName
private

Definition at line 117 of file FileStore.h.

Referenced by FileStore(), get(), open(), and set().

◆ m_offsets

NumToOffset FIX::FileStore::m_offsets
private

Definition at line 115 of file FileStore.h.

Referenced by get(), populateCache(), and set().

◆ m_seqNumsFile

FILE* FIX::FileStore::m_seqNumsFile
private

Definition at line 124 of file FileStore.h.

Referenced by open(), setSeqNum(), and ~FileStore().

◆ m_seqNumsFileName

std::string FIX::FileStore::m_seqNumsFileName
private

Definition at line 119 of file FileStore.h.

Referenced by FileStore(), open(), populateCache(), and setSeqNum().

◆ m_sessionFile

FILE* FIX::FileStore::m_sessionFile
private

Definition at line 125 of file FileStore.h.

Referenced by open(), setSession(), and ~FileStore().

◆ m_sessionFileName

std::string FIX::FileStore::m_sessionFileName
private

Definition at line 120 of file FileStore.h.

Referenced by FileStore(), open(), populateCache(), and setSession().


The documentation for this class was generated from the following files:

Generated on Thu Sep 5 2019 11:07:58 for QuickFIX by doxygen 1.8.13 written by Dimitri van Heesch, © 1997-2001