OnixS C++ FIX Engine 2.79.1.0
C:/Users/Pasha/_Dev/fixforge-cpp/fix/cppEngine/include/OnixS/FIX/MulticastClient.h
00001 /*
00002 * Copyright 2005-2011 Onix Solutions Limited [OnixS]. All rights reserved. 
00003 * 
00004 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law 
00005 * and international copyright treaties. 
00006 * 
00007 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
00008 * Services Agreement (the Agreement) and Customer end user license agreements granting 
00009 * a non-assignable, non-transferable and non-exclusive license to use the software 
00010 * for it's own data processing purposes under the terms defined in the Agreement.
00011 * 
00012 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part 
00013 * of this source code or associated reference material to any other location for further reproduction
00014 * or redistribution, and any amendments to this copyright notice, are expressly prohibited. 
00015 *
00016 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with 
00017 * the terms of the Agreement is a violation of copyright law. 
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__