OnixS C++ FIX Engine 2.79.1.0
C:/Users/Pasha/_Dev/fixforge-cpp/fix/cppEngine/include/OnixS/FIX/Engine.h
00001 /*
00002 * Copyright 2005-2011 Onix Solutions Limited [OnixS]. All rights reserved. 
00003 * 
00004 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law 
00005 * and international copyright treaties. 
00006 * 
00007 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
00008 * Services Agreement (the Agreement) and Customer end user license agreements granting 
00009 * a non-assignable, non-transferable and non-exclusive license to use the software 
00010 * for it's own data processing purposes under the terms defined in the Agreement.
00011 * 
00012 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part 
00013 * of this source code or associated reference material to any other location for further reproduction
00014 * or redistribution, and any amendments to this copyright notice, are expressly prohibited. 
00015 *
00016 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with 
00017 * the terms of the Agreement is a violation of copyright law. 
00018 */
00019 
00020 #if !defined(__ONIXS_ENGINE_H__)
00021 #define __ONIXS_ENGINE_H__
00022 
00023 #include <string>
00024 
00025 #include "OnixS/FIX/ABI.h"
00026 #include "OnixS/FIX/Timestamp.h"
00027 
00028 namespace OnixS
00029 {
00030     namespace FIX
00031     {
00032         ONIXS_FIXENGINE_API_DECL(class, IEngineListener);
00033         ONIXS_FIXENGINE_API_DECL(class, EngineSettings);
00034 
00036         class ONIXS_FIXENGINE_API Engine
00037         {
00038         public:
00044             static Engine* init(int listenPort = 0);
00045 
00049             static Engine* init(const std::string& configFile);
00050 
00054             static Engine* initFromString(const std::string& configuration);
00055             
00059             static Engine* init(const EngineSettings& settings);
00060 
00062             static void shutdown();
00063 
00067             static Engine* instance();
00068 
00070             static bool isInitialized();
00071 
00075             int getListenPort() const;
00076 
00080             const std::string& getLogDirectory() const;
00081 
00083             Timestamp getLicenseExpirationDate() const;
00084 
00087             void registerListener(IEngineListener* listener);
00088 
00090             void unregisterListener();
00091 
00092             struct Impl;
00093 
00094         private:  
00095             static void commonInit();
00096 
00097             Engine();
00098 
00099             ~Engine();
00100 
00101             Impl* impl_;
00102 
00103             static Engine* instance_;
00104 
00105             friend class Message;
00106         };
00107     }
00108 }
00109 
00110 #endif // __ONIXS_ENGINE_H__