PracticeDev/study_clang/Mimic/test_judge/include/CZeroMQ.h

65 lines
1.7 KiB
C++

/*****************************************************************************
* @Descripttion:
* @Author: FengChao
* @Date: 2020-08-07 16:56:44
* @LastEditors: LastEditors
* @LastEditTime: 2020-08-07 17:29:41
*****************************************************************************/
/*************************************************************************
> File Name : CZeroMQ.h
> Author : FengChao
> EMail : smile.fengchao@gmail.com
> Created Time : Fri 17 Jul 2020 09:30:51 AM CST
************************************************************************/
#ifndef CZEROMQ_H
#define CZEROMQ_H
#include <string>
class CZMQSubscriber
{
public:
explicit CZMQSubscriber(const char *pcAddrPort, const char *pcPriKey = NULL, const char *pcPubKey = NULL);
~CZMQSubscriber();
int SetRecvTimeout(unsigned int uiSeconds = 3);
int RecvData(void *pvBuff, unsigned int uiBuffLen);
private:
int SocketInit();
private:
void *m_pvSubCtx;
void *m_pvSubSock;
std::string m_strAddrPort;
std::string m_StrPriKey;
std::string m_StrPubKey;
};
class CZMQReqRep
{
public:
explicit CZMQReqRep(int iType, const char *pcAddrPort, const char *pcPriKey = NULL, const char *pcPubKey = NULL);
~CZMQReqRep();
int RecvData(void *pvBuff, unsigned int uiBuffLen);
int SendData(const void *pvData, unsigned int uiDataLen);
int SetRecvTimeout(unsigned int uiSeconds = 3);
int SetSendTimeout(unsigned int uiSeconds = 3);
private:
int SocketInit();
private:
int m_iType;
void *m_pvCtx;
void *m_pvSock;
std::string m_strAddrPort;
std::string m_StrPriKey;
std::string m_StrPubKey;
};
#endif /*CZEROMQ_H*/