SessionFactory.h
Go to the documentation of this file.
1 /* -*- C++ -*- */
2 
3 /****************************************************************************
4 ** Copyright (c) 2001-2014
5 **
6 ** This file is part of the QuickFIX FIX Engine
7 **
8 ** This file may be distributed under the terms of the quickfixengine.org
9 ** license as defined by quickfixengine.org and appearing in the file
10 ** LICENSE included in the packaging of this file.
11 **
12 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14 **
15 ** See http://www.quickfixengine.org/LICENSE for licensing information.
16 **
17 ** Contact ask@quickfixengine.org if any conditions of this licensing are
18 ** not clear to you.
19 **
20 ****************************************************************************/
21 
22 #ifndef FIX_SESSIONFACTORY_H
23 #define FIX_SESSIONFACTORY_H
24 
25 #ifdef _MSC_VER
26 #pragma warning( disable : 4503 4355 4786 4290 )
27 #endif
28 
29 #include "Log.h"
30 #include "Exceptions.h"
31 #include "Dictionary.h"
32 
33 namespace FIX
34 {
35 class SessionID;
36 class Session;
37 class Application;
38 class MessageStoreFactory;
39 class DataDictionaryProvider;
40 
46 class SessionFactory
47 {
48 public:
49  SessionFactory( Application& application,
50  MessageStoreFactory& messageStoreFactory,
51  LogFactory* pLogFactory )
52 : m_application( application ),
53  m_messageStoreFactory( messageStoreFactory ),
54  m_pLogFactory( pLogFactory ) {}
55 
57 
58  Session* create( const SessionID& sessionID,
59  const Dictionary& settings ) throw( ConfigError );
60  void destroy( Session* pSession );
61 
62 private:
63  typedef std::map < std::string, ptr::shared_ptr<DataDictionary> > Dictionaries;
64 
65  ptr::shared_ptr<DataDictionary> createDataDictionary(const SessionID& sessionID,
66  const Dictionary& settings,
67  const std::string& settingsKey) throw(ConfigError);
68 
69  void processFixtDataDictionaries(const SessionID& sessionID,
70  const Dictionary& settings,
71  DataDictionaryProvider& provider) throw(ConfigError);
72 
73  void processFixDataDictionary(const SessionID& sessionID,
74  const Dictionary& settings,
75  DataDictionaryProvider& provider) throw(ConfigError);
76 
77  std::string toApplVerID(const std::string& value);
78 
83 };
84 }
85 
86 #endif
FIX::SessionFactory::processFixDataDictionary
void processFixDataDictionary(const SessionID &sessionID, const Dictionary &settings, DataDictionaryProvider &provider)
Definition: SessionFactory.cpp:290
FIX::MessageStoreFactory
This interface must be implemented to create a MessageStore.
Definition: MessageStore.h:58
FIX::SessionFactory::m_messageStoreFactory
MessageStoreFactory & m_messageStoreFactory
Definition: SessionFactory.h:97
FIX::SessionFactory::m_dictionaries
Dictionaries m_dictionaries
Definition: SessionFactory.h:99
FIX::Application
This interface must be implemented to define what your FIX application does.
Definition: Application.h:60
FIX::SessionFactory::m_application
Application & m_application
Definition: SessionFactory.h:96
FIX::ConfigError
Application is not configured correctly
Definition: Exceptions.h:104
FIX::SessionID
Unique session id consists of BeginString, SenderCompID and TargetCompID.
Definition: SessionID.h:47
FIX::SessionFactory::destroy
void destroy(Session *pSession)
Definition: SessionFactory.cpp:220
FIX::SessionFactory::Dictionaries
std::map< std::string, ptr::shared_ptr< DataDictionary > > Dictionaries
Definition: SessionFactory.h:80
FIX::SessionFactory::SessionFactory
SessionFactory(Application &application, MessageStoreFactory &messageStoreFactory, LogFactory *pLogFactory)
Definition: SessionFactory.h:66
FIX::SessionFactory::~SessionFactory
~SessionFactory()
Definition: SessionFactory.cpp:54
FIX
Definition: Acceptor.cpp:34
Dictionary.h
FIX::SessionFactory::toApplVerID
std::string toApplVerID(const std::string &value)
Exceptions.h
FIX::SessionFactory::processFixtDataDictionaries
void processFixtDataDictionaries(const SessionID &sessionID, const Dictionary &settings, DataDictionaryProvider &provider)
Definition: SessionFactory.cpp:259
FIX::SessionFactory::create
Session * create(const SessionID &sessionID, const Dictionary &settings)
Definition: SessionFactory.cpp:58
FIX::LogFactory
This interface must be implemented to create a Log.
Definition: Log.h:59
FIX::DataDictionaryProvider
Queries for DataDictionary based on appropriate version of FIX.
Definition: DataDictionaryProvider.h:59
FIX::SessionFactory::createDataDictionary
ptr::shared_ptr< DataDictionary > createDataDictionary(const SessionID &sessionID, const Dictionary &settings, const std::string &settingsKey)
Definition: SessionFactory.cpp:225
FIX::Dictionary
For storage and retrieval of key/value pairs.
Definition: Dictionary.h:53
Log.h
FIX::SessionFactory::m_pLogFactory
LogFactory * m_pLogFactory
Definition: SessionFactory.h:98

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