use factory for sockets

This commit is contained in:
Alexey Rybalchenko
2014-01-21 15:57:59 +01:00
parent a383434c45
commit 88fee245b8
38 changed files with 653 additions and 493 deletions

View File

@@ -8,42 +8,34 @@
#ifndef FAIRMQSOCKET_H_
#define FAIRMQSOCKET_H_
#include <zmq.h>
#include <string>
#include "FairMQContext.h"
#include "FairMQMessage.h"
#include "Rtypes.h"
#include "TString.h"
#include "FairMQMessageZMQ.h"
class FairMQSocket
{
public:
FairMQSocket(FairMQContext* context, int type, int num);
virtual ~FairMQSocket();
TString GetId();
static TString GetTypeString(int type);
size_t Send(FairMQMessage* msg);
size_t Receive(FairMQMessage* msg);
void Close();
void Bind(TString address);
void Connect(TString address);
void* GetSocket();
virtual std::string GetId() = 0;
void SetOption(int option, const void* value, size_t valueSize);
virtual void Bind(std::string address) = 0;
virtual void Connect(std::string address) = 0;
ULong_t GetBytesTx();
ULong_t GetBytesRx();
ULong_t GetMessagesTx();
ULong_t GetMessagesRx();
virtual size_t Send(FairMQMessage* msg) = 0;
virtual size_t Receive(FairMQMessage* msg) = 0;
private:
void* fSocket;
TString fId;
ULong_t fBytesTx;
ULong_t fBytesRx;
ULong_t fMessagesTx;
ULong_t fMessagesRx;
virtual void Close() = 0;
virtual void* GetSocket() = 0;
virtual void SetOption(int option, const void* value, size_t valueSize) = 0;
virtual unsigned long GetBytesTx() = 0;
virtual unsigned long GetBytesRx() = 0;
virtual unsigned long GetMessagesTx() = 0;
virtual unsigned long GetMessagesRx() = 0;
virtual ~FairMQSocket() {};
};
#endif /* FAIRMQSOCKET_H_ */