NAP
websocketmessage.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // Local Includes
8 #include "wspp.h"
9 #include "websocketutils.h"
10 
11 // External Includes
12 #include <utility/dllexport.h>
13 
14 namespace nap
15 {
16  // Forward Declares
17  template<typename T>
18  class WebSocketServerEndPointSetup;
19  template<typename T>
20  class WebSocketClientEndPointSetup;
21  template<typename T>
22  class WebSocketClientWrapper;
23 
29  class NAPAPI WebSocketMessage final
30  {
31  template<typename T>
33  template<typename T>
35  template<typename T>
36  friend class WebSocketClientWrapper;
37 
38  public:
45  WebSocketMessage(const std::string& message, EWebSocketOPCode code, bool fin = true);
46 
53  WebSocketMessage(std::string&& message, EWebSocketOPCode code, bool fin = true);
54 
55  // no default constructor
56  WebSocketMessage() = delete;
57  // Move constructor
59  // Move assignment operator
60  WebSocketMessage& operator=(WebSocketMessage&& other);
61  // Default copy constructor
62  WebSocketMessage(const WebSocketMessage& other) = default;
63  // Default copy assignment operator
64  WebSocketMessage& operator=(const WebSocketMessage& other) = default;
65 
69  const std::string& getPayload() const;
70 
75  void appendPayload(const std::string& payload);
76 
80  EWebSocketOPCode getCode() const;
81 
88  bool getFin() const;
89 
90  private:
97 
98  std::string mMessage;
99  EWebSocketOPCode mCode;
100  bool mFin = true;
101  };
102 }
nap::WebSocketClientEndPointSetup
Definition: websocketclientendpoint.h:39
nap::WebSocketClientWrapper
Definition: websocketclientendpoint.h:20
nap::WebSocketServerEndPointSetup
Definition: websocketconnection.h:16
nap::WebSocketMessage
Definition: websocketmessage.h:29
nap::wspp::MessagePtr
Config::message_type::ptr MessagePtr
internal message format
Definition: wspp.h:19
nap
Definition: templateapp.h:17
nap::EWebSocketOPCode
EWebSocketOPCode
Definition: websocketutils.h:29