![]() |
00001 /* -*- C++ -*- */ 00002 00003 /**************************************************************************** 00004 ** Copyright (c) quickfixengine.org All rights reserved. 00005 ** 00006 ** This file is part of the QuickFIX FIX Engine 00007 ** 00008 ** This file may be distributed under the terms of the quickfixengine.org 00009 ** license as defined by quickfixengine.org and appearing in the file 00010 ** LICENSE included in the packaging of this file. 00011 ** 00012 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00013 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00014 ** 00015 ** See http://www.quickfixengine.org/LICENSE for licensing information. 00016 ** 00017 ** Contact ask@quickfixengine.org if any conditions of this licensing are 00018 ** not clear to you. 00019 ** 00020 ****************************************************************************/ 00021 00022 #ifndef FIX_DATADICTIONARYPROVIDER_H 00023 #define FIX_DATADICTIONARYPROVIDER_H 00024 00025 #ifdef _MSC_VER 00026 #pragma warning( disable : 4503 4355 4786 4290 ) 00027 #endif 00028 00029 #include "DataDictionary.h" 00030 #include "Exceptions.h" 00031 00032 namespace FIX 00033 { 00034 class BeginString; 00035 class ApplVerID; 00036 00041 class DataDictionaryProvider 00042 { 00043 public: 00044 DataDictionaryProvider() {} 00045 DataDictionaryProvider( const DataDictionaryProvider& copy ); 00046 00047 const DataDictionary& getSessionDataDictionary(const BeginString& beginString) 00048 throw( DataDictionaryNotFound ); 00049 00050 const DataDictionary& getApplicationDataDictionary(const ApplVerID& applVerID) 00051 throw( DataDictionaryNotFound ); 00052 00053 void addTransportDataDictionary(const BeginString& beginString, const DataDictionary& dd); 00054 void addApplicationDataDictionary(const ApplVerID applVerID, const DataDictionary& dd); 00055 00056 private: 00057 std::map<std::string, DataDictionary> m_transportDictionaries; 00058 std::map<std::string, DataDictionary> m_applicationDictionaries; 00059 DataDictionary emptyDataDictionary; 00060 }; 00061 } 00062 00063 #endif //FIX_DATADICTIONARYPROVIDER_H 00064