9 #ifndef _SAG_MDM_INTERFACE_H_
10 #define _SAG_MDM_INTERFACE_H_
26 #include "sag_connectivity_plugins.hpp"
32 #if defined(_APBUILD_WIN32_ALL__) || defined(__WIN32__) || defined(WIN32)
40 #ifndef _APBUILD_WIN32_ALL__
41 #define _APBUILD_WIN32_ALL__
44 #ifdef SAG_MDM_BACKEND
45 #define SAG_MDM_API __declspec(dllexport)
46 #define SAG_MDM_CALL __stdcall
48 #define SAG_MDM_API __declspec(dllimport)
49 #define SAG_MDM_CALL __stdcall
52 #elif defined(_APBUILD_UNIX_ALL__) || defined(__unix__)
56 #error "Can't determine platform: try #define _APBUILD_WIN32_ALL__ or _APBUILD_UNIX_ALL__"
60 namespace softwareag {
61 namespace marketdata {
63 #define STREAMTYPE_BBA ("com.apama.md.BBA")
64 #define STREAMTYPE_TRADE ("com.apama.md.T")
65 #define STREAMTYPE_MBP ("com.apama.md.D")
66 #define STREAMTYPE_MBO ("com.apama.md.O")
67 #define STREAMTYPE_EP ("com.apama.md.EP")
68 #define STREAMTYPE_QUOTEBOOK ("com.apama.md.QB")
69 #define STREAMTYPE_NEWS ("com.apama.md.N")
86 #define MDM_DEFAULT_STRING "~#"
87 #define MDM_DEFAULT_FLOAT 0.000001
88 #define MDM_DEFAULT_INT -999999
118 SchemaItemValue(
const std::string ¶mName,
const std::string &value) : paramName_(paramName), value_(value) {}
139 SchemaItem(
const std::string ¶mName,
const std::string &type,
const std::string &value,
const std::string &description)
142 , description_(description)
172 typedef int64_t TimestampSetIndex;
173 typedef double TimestampSetTime;
177 typedef std::shared_ptr<TimestampSet> TimestampSetPtr;
206 virtual const char* getKey(
const std::string& symbol, int64_t sourceId,
AP_MDM_StreamType streamType, map_t& ctrlParams) = 0;
220 virtual void connect(
const std::string& subKey,
AP_MDM_StreamType streamType, map_t& ctrlParams) = 0;
234 virtual void disconnect(
const std::string& subKey,
AP_MDM_StreamType streamType, map_t& ctrlParams) = 0;
244 virtual void setMarketDataSession(MarketDataSession* mdSession) = 0;
267 virtual void Start() = 0;
272 virtual void Stop() = 0;
279 virtual bool ProcessMessage(Message& msgObj) = 0;
292 virtual void setHostSide(HostSide* hostSide);
302 virtual void setTimeStampConfig(map_t& timeStampConfig) = 0;
344 virtual void setConnectSuccess(
const std::string& subKey, TimestampSetPtr tss) = 0;
354 virtual void setConnectFailed(
const std::string& subKey,
const std::string& description, TimestampSetPtr tss) = 0;
363 virtual void setDisconnectSuccess(
const std::string& subKey, TimestampSetPtr tss) = 0;
373 virtual void setDisconnectFailed(
const std::string& subKey,
const std::string & description, TimestampSetPtr tss) = 0;
382 virtual void SubscriptionCommit(
const std::string& subKey, TimestampSetPtr tss) = 0;
389 virtual void RemoveSubscription(
const std::string& subKey) = 0;
396 virtual void RemoveSourceSubscriptions(int64_t sourceId) = 0;
401 virtual void RemoveSubscriptions() = 0;
411 virtual void ClearSubscriptionData(
const std::string& subKey) = 0;
422 virtual void ClearSourceData(int64_t sourceId) = 0;
428 virtual void ClearData() = 0;
452 void addNow(TimestampSetIndex index);
460 void addTime(TimestampSetIndex index, TimestampSetTime time);
468 TimestampSetTime findTime(TimestampSetIndex index);
480 TimestampSetTime getRelativeTime();
Definition: Connectivity_MDInterfaces.h:438
bool logDownstream
Definition: Connectivity_MDInterfaces.h:165
std::vector< StringPair > StringDictionary
Definition: MDM_MarketDataInterface.h:231
HostSide * hostSide_
Definition: Connectivity_MDInterfaces.h:306
TimestampSet()
Definition: Connectivity_MDInterfaces.h:444
Definition: MDM_MarketDataInterface.h:63
Definition: MDM_MarketDataInterface.h:90
SchemaItemValue StringPair
Definition: MDM_MarketDataInterface.h:230
AP_MDM_ErrorLevel
Definition: MDM_MarketDataInterface.h:86
Definition: Connectivity_MDPublisher.h:22
Definition: MDM_MarketDataInterface.h:68
Definition: MDM_MarketDataInterface.h:88
std::string type_
Definition: Connectivity_MDInterfaces.h:145
bool recordDownstream
Definition: Connectivity_MDInterfaces.h:163
SchemaItem NewsData
Definition: MDM_MarketDataInterface.h:227
Definition: Connectivity_MDInterfaces.h:59
AP_MDM_StreamType
Definition: MDM_MarketDataInterface.h:62
std::list< NewsData > NewsDataList
Definition: MDM_MarketDataInterface.h:228
std::set< std::string > StringSet
Definition: MDM_MarketDataInterface.h:181
Logger * logger_
Definition: Connectivity_MDInterfaces.h:308
Definition: Connectivity_MDInterfaces.h:161
SchemaItemValue ExtraParamValue
Definition: MDM_MarketDataInterface.h:223
Definition: MDM_MarketDataInterface.h:70
bool logUpstream
Definition: Connectivity_MDInterfaces.h:164
Definition: MDM_MarketDataInterface.h:64
SchemaItemValue(const std::string ¶mName, const std::string &value)
Definition: Connectivity_MDInterfaces.h:118
std::string paramName_
Definition: Connectivity_MDInterfaces.h:125
SchemaItem ExtraParam
Definition: MDM_MarketDataInterface.h:222
MDMInterface * mdInterface_
Definition: Connectivity_MDInterfaces.h:310
Definition: Connectivity_MDInterfaces.h:332
std::string description_
Definition: Connectivity_MDInterfaces.h:146
bool logRoundtrip
Definition: Connectivity_MDInterfaces.h:166
SchemaItem(const std::string ¶mName, const std::string &type, const std::string &value, const std::string &description)
Definition: Connectivity_MDInterfaces.h:139
MDMInterface()
Definition: Connectivity_MDInterfaces.h:187
Definition: MDM_MarketDataInterface.h:67
std::vector< std::string > StringList
Definition: MDM_MarketDataInterface.h:180
Definition: MDM_MarketDataInterface.h:80
AP_MDM_TransferMode
Definition: MDM_MarketDataInterface.h:79
bool operator==(const SchemaItemValue &rhs) const
Definition: Connectivity_MDInterfaces.h:123
Definition: Connectivity_MDInterfaces.h:180
map_t & getTimeStamp()
Definition: Connectivity_MDInterfaces.h:474
Definition: MDM_MarketDataInterface.h:65
Definition: Connectivity_MDInterfaces.h:130
Definition: MDM_MarketDataInterface.h:66
Definition: Connectivity_MDInterfaces.h:249
Definition: Connectivity_MDInterfaces.h:317
Definition: MDM_MarketDataInterface.h:87
bool recordUpstream
Definition: Connectivity_MDInterfaces.h:162
Definition: Connectivity_MDInterfaces.h:111
Definition: MDM_MarketDataInterface.h:89
std::string value_
Definition: Connectivity_MDInterfaces.h:126
std::list< ExtraParamValue > ExtraParamValueList
Definition: MDM_MarketDataInterface.h:225
Definition: MDM_MarketDataInterface.h:81
Definition: MDM_MarketDataInterface.h:69
std::list< ExtraParam > ExtraParamList
Definition: MDM_MarketDataInterface.h:224