00001
00002
00003
00004
00005 #ifndef FIXEngine_h
00006 #define FIXEngine_h
00007
00008 #include "./FIXEngineDefines.h"
00009 #include "EngineException.h"
00010
00011 namespace FIXForge{
00012 namespace FIX{
00013 class IEngineListener;
00014
00015
00016
00017
00018 class FF_API Engine{
00019 public:
00020
00021
00022
00023
00024
00025
00026
00027 static Engine* init(int listenPort = 0);
00028
00029
00030
00031
00032
00033
00034 static Engine* init(const std::string& configFile);
00035
00036
00037
00038
00039
00040
00041 static Engine* initFromString(const std::string& configuration);
00042
00043
00044 static void shutdown();
00045
00046
00047
00048
00049
00050
00051 static Engine* instance();
00052
00053
00054 static bool isInitialized();
00055
00056
00057
00058
00059
00060
00061 int getListenPort();
00062
00063
00064
00065 void registerListener(IEngineListener* listener);
00066
00067
00068 void unregisterListener();
00069
00070 struct Impl;
00071
00072 private:
00073 Engine();
00074
00075 ~Engine();
00076
00077 Impl* impl_;
00078
00079 static Engine* instance_;
00080
00081 friend class Message;
00082 };
00083 }};
00084
00085 #endif
00086