00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __ONIXS_CppFixEngine_SessionStorage_h_
00021 #define __ONIXS_CppFixEngine_SessionStorage_h_
00022
00023 #include <string>
00024 #include <vector>
00025
00026 #include "OnixS/FIX/ABI.h"
00027 #include "OnixS/FIX/Definitions.h"
00028
00029 namespace OnixS{
00030 namespace FIX {
00031
00033 class ONIXS_FIXENGINE_API ISessionStorage{
00034 public:
00036 virtual ~ISessionStorage(){};
00037
00039 virtual void clear() = 0;
00040
00042 virtual void close(bool keepSequenceNumbers, bool doBackup) = 0;
00043
00045 struct ONIXS_FIXENGINE_API RawMessagePointer
00046 {
00047 RawMessagePointer();
00048
00049 RawMessagePointer(const byte* buffer, size_t length);
00050
00052 const byte* buffer_;
00053
00054 size_t length_;
00055 };
00056
00058 class ISessionStorageListener
00059 {
00060 public:
00062 virtual ~ISessionStorageListener(){};
00063
00064 virtual void onReplayedMessage(const RawMessagePointer& pointer) = 0;
00065 };
00066
00068 virtual void getOutbound(int beginSequenceNumber, int endSequenceNumber, ISessionStorageListener* listener) = 0;
00069
00071 virtual int inSeqNum() = 0;
00072
00074 virtual void inSeqNum(int messageSequenceNumber) = 0;
00075
00077 virtual void storeInbound(int messageSequenceNumber, const RawMessagePointer& pointer) = 0;
00078
00080 virtual void storeOutbound(int messageSequenceNumber, const RawMessagePointer& pointer)= 0;
00081
00085 virtual void setSessionTerminationFlag(bool terminated) = 0;
00086
00088 virtual int outSeqNum() = 0;
00089
00091 virtual void outSeqNum(int messageSequenceNumber) = 0;
00092
00093 };
00094 }};
00095 #endif