ostinato/rpc/rpcserver.h

47 lines
998 B
C++

#ifndef _RPC_SERVER_H
#define _RPC_SERVER_H
#include <google/protobuf/message.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/service.h>
#include <QTcpServer>
#include <QTcpSocket>
#include "pbrpccommon.h"
#include "pbrpccontroller.h"
class RpcServer : public QObject
{
Q_OBJECT
QTcpServer *server;
QTcpSocket *clientSock;
::google::protobuf::Service *service;
bool isPending;
int pendingMethodId;
PbRpcController controller_;
QString errorString_;
public:
RpcServer(); //! \todo (LOW) use 'parent' param
virtual ~RpcServer();
bool registerService(::google::protobuf::Service *service,
quint16 tcpPortNum);
QString errorString();
void done(::google::protobuf::Message *req,
::google::protobuf::Message *resp);
private slots:
void when_newConnection();
void when_disconnected();
void when_dataAvail();
void when_error(QAbstractSocket::SocketError socketError);
};
#endif