123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- #pragma once
- #include "BUSClient.Define.hpp"
- #include "BUSClient.Stream.hpp"
- #include "BUSClient.Base.hpp"
- namespace ECOM
- {
- namespace ServiceBus
- {
- namespace Controller
- {
- //-----------------------------------------------------------------------------
- // MessageClient, 可以发送消息
- //-----------------------------------------------------------------------------
- class _ServiceBus_API MessageClient : public Client
- {
- typedef Client inherited;
- public:
- MessageClient ();
- virtual ~MessageClient ();
- public:
- virtual void Close ();
- bool Send (LPCSTR TargetID, DWORD Command, DString Message, int msTimeOut = gDefMSTimeOut);
- bool Send (LPCSTR TargetID, DWORD Command, DString Message, DString & AckMessage, int msTimeOut = gDefMSTimeOut);
- bool Post (LPCSTR TargetID, DWORD Command, DString Message);
- bool Forward (LPCSTR TargetID, DWORD Command, DString Message);
- bool Send (LPCSTR TargetID, DWORD Command, WString Message, int msTimeOut = gDefMSTimeOut);
- bool Send (LPCSTR TargetID, DWORD Command, WString Message, WString & AckMessage, int msTimeOut = gDefMSTimeOut);
- bool Post (LPCSTR TargetID, DWORD Command, WString Message);
- bool Forward (LPCSTR TargetID, DWORD Command, WString Message);
- protected:
- template <typename T>
- bool DoSend (LPCSTR TargetID, DWORD Command, const T & Message, T & AckMessage, int msTimeOut = gDefMSTimeOut);
- protected:
- template <typename T>
- bool DoReadAck (DWORD MessageID, T & AckMessage, BlockBuffer & AckBLOB, int msTimeOut);
- public:
- _tUnsafeDelegate <EventArgs_Error> OnAppError;
- };
- //-----------------------------------------------------------------------------
- // 二进制大对象 (BLOB, Binary Large OBjects)
- //-----------------------------------------------------------------------------
- class _ServiceBus_API BLOBClient : public MessageClient
- {
- typedef MessageClient inherited;
- public:
- BLOBClient ();
- virtual ~BLOBClient ();
- public:
- virtual void Close ();
- public:
- bool SendBLOB (LPCSTR TargetID, DWORD Command, BlockBuffer BLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, BlockBuffer BLOB, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool PostBLOB (LPCSTR TargetID, DWORD Command, BlockBuffer BLOB, int msTimeOut = gDefMSTimeOut);
- public:
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, BlockBuffer BLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, BlockBuffer BLOB, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, BlockBuffer BLOB, DString & AckMessage, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, BlockBuffer BLOB, DString & AckMessage, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool PostBLOB (LPCSTR TargetID, DWORD Command, DString Message, BlockBuffer BLOB, int msTimeOut = gDefMSTimeOut);
- public:
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, BlockBuffer BLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, BlockBuffer BLOB, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, BlockBuffer BLOB, WString & AckMessage, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, BlockBuffer BLOB, WString & AckMessage, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool PostBLOB (LPCSTR TargetID, DWORD Command, WString Message, BlockBuffer BLOB, int msTimeOut = gDefMSTimeOut);
- protected:
- template <typename T>
- bool DoSendBLOB (LPCSTR TargetID, DWORD Command, T Message, BlockBuffer BLOB, T & AckMessage, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- };
- class _ServiceBus_API BLOBStreamClient : public MessageClient
- {
- typedef MessageClient inherited;
- public:
- BLOBStreamClient ();
- virtual ~BLOBStreamClient ();
-
- virtual void Close ();
- public:
- bool SendBLOB (LPCSTR TargetID, DWORD Command, funstream fun, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, funstream fun, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool PostBLOB (LPCSTR TargetID, DWORD Command, funstream fun, int msTimeOut = gDefMSTimeOut);
- public:
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, funstream fun, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, funstream fun, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, funstream fun, DString & AckMessage, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, DString Message, funstream fun, DString & AckMessage, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool PostBLOB (LPCSTR TargetID, DWORD Command, DString Message, funstream fun, int msTimeOut = gDefMSTimeOut);
- public:
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, funstream fun, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, funstream fun, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, funstream fun, WString & AckMessage, int msTimeOut = gDefMSTimeOut);
- bool SendBLOB (LPCSTR TargetID, DWORD Command, WString Message, funstream fun, WString & AckMessage, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- bool PostBLOB (LPCSTR TargetID, DWORD Command, WString Message, funstream fun, int msTimeOut = gDefMSTimeOut);
- protected:
- template <typename T>
- bool DoSendBLOB (LPCSTR TargetID, DWORD Command, T Message, funstream fun, T & AckMessage, BlockBuffer & AckBLOB, int msTimeOut = gDefMSTimeOut);
- };
- //-----------------------------------------------------------------------------
- // 单端口/固定端口客户端
- //-----------------------------------------------------------------------------
- class _ServiceBus_API FixedMessageClient : public MessageClient
- {
- public:
- FixedMessageClient (int CmdPort, int NbOfChannel = 1)
- {
- m_CommandPort = CmdPort;
- m_NbOfChannel = NbOfChannel;
- }
- };
- class _ServiceBus_API FixedBLOBClient : public BLOBClient
- {
- public:
- FixedBLOBClient (int CmdPort, int NbOfChannel = 1)
- {
- m_CommandPort = CmdPort;
- m_NbOfChannel = NbOfChannel;
- }
- };
- }
- }
- };
|