File size: 1,515 Bytes
053b80b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#ifndef _I_TRANSPORT_CLIENT_H_
#define _I_TRANSPORT_CLIENT_H_
#include <string>
#include <functional>
#include <exception>
#include <cmath>
using namespace std;
namespace Kinova
{
namespace Api
{
// enums
enum TransportReadyStateEnum
{
CONNECTING = 0,
OPEN = 1,
CLOSING = 2,
CLOSED = 3,
UNINITIALIZED = 4,
RECONNECTING = 5,
};
// interface
class ITransportClient
{
public:
TransportReadyStateEnum readyState;
virtual ~ITransportClient() {}
virtual bool connect(std::string host, uint32_t port) = 0;
virtual void disconnect() = 0;
virtual void send(const char* txBuffer, uint32_t txSize) = 0;
virtual void onMessage(std::function<void (const char*, uint32_t)> callback) = 0;
// virtual void onClose(ConnectionClose eventClose)> callback) = 0;
// virtual void onError(ConnectionError error)> callback) = 0;
// virtual bool isClosed() = 0;
// virtual bool isClosing() = 0;
// virtual bool isConnecting() = 0;
// virtual bool isOpen() = 0;
// virtual bool isUninitialized() = 0;
virtual char* getTxBuffer(uint32_t const& allocation_size) = 0;
virtual size_t getMaxTxBufferSize() = 0;
virtual void getHostAddress(std::string &host, uint32_t &port) = 0;
};
} // namespace Api
} // namespace Kinova
#endif // _I_TRANSPORT_CLIENT_H_
|