mirror of
https://github.com/EvernodeXRPL/hpcore.git
synced 2026-04-29 15:37:59 +00:00
Implemented socket message templates. (#40)
Implemented socket message templates to support broadcast (shared_ptr) and to achieve buffer zero-copy.
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
#ifndef _HP_USER_SESSION_HANDLER_H_
|
||||
#define _HP_USER_SESSION_HANDLER_H_
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include "../sock/socket_session_handler.hpp"
|
||||
#include "../sock/socket_session.hpp"
|
||||
@@ -5,12 +8,29 @@
|
||||
namespace usr
|
||||
{
|
||||
|
||||
class user_session_handler : public sock::socket_session_handler
|
||||
/**
|
||||
* Represents a message (bytes) that is sent to a user.
|
||||
*/
|
||||
class user_outbound_message : public sock::outbound_message
|
||||
{
|
||||
// Contains message bytes.
|
||||
std::string msg;
|
||||
|
||||
public:
|
||||
void on_connect(sock::socket_session *session);
|
||||
void on_message(sock::socket_session *session, std::string &&message);
|
||||
void on_close(sock::socket_session *session);
|
||||
user_outbound_message(std::string &&_msg);
|
||||
|
||||
// Returns the buffer that should be written to the socket.
|
||||
virtual std::string_view buffer();
|
||||
};
|
||||
|
||||
} // namespace usr
|
||||
class user_session_handler : public sock::socket_session_handler<user_outbound_message>
|
||||
{
|
||||
public:
|
||||
void on_connect(sock::socket_session<user_outbound_message> *session);
|
||||
void on_message(sock::socket_session<user_outbound_message> *session, std::string_view message);
|
||||
void on_close(sock::socket_session<user_outbound_message> *session);
|
||||
};
|
||||
|
||||
} // namespace usr
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user