28 #ifndef WEBSOCKETPP_MESSAGE_BUFFER_MESSAGE_HPP
29 #define WEBSOCKETPP_MESSAGE_BUFFER_MESSAGE_HPP
31 #include <websocketpp/common/memory.hpp>
32 #include <websocketpp/frame.hpp>
36 namespace websocketpp {
37 namespace message_buffer {
83 template <
template<
class>
class con_msg_manager>
86 typedef lib::shared_ptr<message> ptr;
88 typedef con_msg_manager<message> con_msg_man_type;
89 typedef typename con_msg_man_type::ptr con_msg_man_ptr;
90 typedef typename con_msg_man_type::weak_ptr con_msg_man_weak_ptr;
96 message(
const con_msg_man_ptr manager)
101 , m_compressed(
false) {}
107 message(
const con_msg_man_ptr manager, frame::opcode::value op, size_t size = 128)
113 , m_compressed(
false)
115 m_payload.reserve(size);
125 bool get_prepared()
const {
135 void set_prepared(
bool value) {
143 bool get_compressed()
const {
156 void set_compressed(
bool value) {
157 m_compressed = value;
169 bool get_terminal()
const {
181 void set_terminal(
bool value) {
195 bool get_fin()
const {
205 void set_fin(
bool value) {
210 frame::opcode::value get_opcode()
const {
215 void set_opcode(frame::opcode::value op) {
224 std::string
const & get_header()
const {
234 void set_header(std::string
const & header) {
238 std::string
const & get_extension_data()
const {
239 return m_extension_data;
246 std::string
const & get_payload()
const {
254 std::string & get_raw_payload() {
264 void set_payload(std::string
const & payload) {
275 void set_payload(
void const * payload, size_t len) {
276 m_payload.reserve(len);
277 char const * pl =
static_cast<
char const *>(payload);
278 m_payload.assign(pl, pl + len);
287 void append_payload(std::string
const & payload) {
288 m_payload.append(payload);
298 void append_payload(
void const * payload, size_t len) {
299 m_payload.reserve(m_payload.size()+len);
300 m_payload.append(
static_cast<
char const *>(payload),len);
317 con_msg_man_ptr shared = m_manager.lock();
320 return shared->recycle(
this);
326 con_msg_man_weak_ptr m_manager;
327 std::string m_header;
328 std::string m_extension_data;
329 std::string m_payload;
330 frame::opcode::value m_opcode;