21 #ifndef KINETIC_CPP_CLIENT_MESSAGE_STREAM_H_
22 #define KINETIC_CPP_CLIENT_MESSAGE_STREAM_H_
24 #include "google/protobuf/message.h"
25 #include "openssl/ssl.h"
27 #include "byte_stream.h"
29 #include "incoming_value.h"
36 MessageStreamReadStatus_SUCCESS,
37 MessageStreamReadStatus_INTERNAL_ERROR,
38 MessageStreamReadStatus_TOO_LARGE
39 } MessageStreamReadStatus;
42 virtual MessageStreamReadStatus ReadMessage(::google::protobuf::Message *message,
44 virtual int WriteMessage(const ::google::protobuf::Message &message,
52 MessageStreamReadStatus ReadMessage(::google::protobuf::Message *message,
54 int WriteMessage(const ::google::protobuf::Message &message,
58 bool ReadHeader(uint32_t *message_size, uint32_t *value_size);
59 bool WriteHeader(uint32_t message_size, uint32_t value_size);
60 uint32_t max_message_size_bytes_;
67 virtual bool NewMessageStream(
int fd,
bool use_ssl, SSL *ssl, uint32_t max_message_size_bytes,
75 bool NewMessageStream(
int fd,
bool use_ssl, SSL *ssl, uint32_t max_message_size_bytes,
80 SSL_CTX *ssl_context_;
89 #endif // KINETIC_CPP_CLIENT_MESSAGE_STREAM_H_