00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(__ONIXS_MULTICASTCLIENT_H__)
00021 #define __ONIXS_MULTICASTCLIENT_H__
00022
00023 #include <vector>
00024
00025 #include "OnixS/FIX/ABI.h"
00026 #include "OnixS/FIX/EngineException.h"
00027
00028 namespace OnixS
00029 {
00030 namespace Sockets
00031 {
00032
00034 class ONIXS_FIXENGINE_API MulticastClient
00035 {
00036 public:
00038 MulticastClient();
00039
00041 virtual ~MulticastClient();
00042
00044 void join(const std::string& ip, int port);
00045
00047 void join(const std::string& ip, int port, const std::string& networkInterface);
00048
00050 void drop();
00051
00052
00059 const std::vector<char>& receive();
00060
00067 const std::vector<char>& receive(long timeoutInMilliseconds);
00068
00070 void send(const std::string& packet);
00071
00073 void send(const char* packet, size_t packetSize);
00074
00075 private:
00076 MulticastClient(const MulticastClient&);
00077 MulticastClient& operator = (const MulticastClient&);
00078
00079 bool isJoined_;
00080
00081 struct Impl;
00082 Impl* impl_;
00083 };
00084 }
00085 }
00086
00087 #endif // __ONIXS_MULTICASTCLIENT_H__