camcom 1.0.0-pre2
 
Loading...
Searching...
No Matches
websocket_client.hpp
Go to the documentation of this file.
1
6
7#ifndef CAMCOM_TEST_WEBSOCKET_CLIENT_HPP
8#define CAMCOM_TEST_WEBSOCKET_CLIENT_HPP
9
10#include <string>
11#include <vector>
12#include <functional>
13#include <mutex>
14#include <condition_variable>
15#include <atomic>
16#include <memory>
17
18namespace camcom::test {
19
29public:
30 using FrameCallback = std::function<void(const std::vector<uint8_t>&, bool)>;
31
34
35 // Connect to WebSocket server
36 bool connect(const std::string& host, int port, const std::string& path = "/ws");
37
38 // Disconnect from server
39 void disconnect();
40
41 // Check if connected
42 bool isConnected() const;
43
44 // Send binary frame
45 bool send(const std::vector<uint8_t>& data);
46
47 // Send text frame
48 bool sendText(const std::string& text);
49
50 // Receive frame with timeout (blocking)
51 bool receive(std::vector<uint8_t>& data, int timeout_ms = 1000);
52
53 // Set frame callback (non-blocking receive)
54 void setFrameCallback(FrameCallback callback);
55
56 // Start background receive loop
57 void startReceiveLoop();
58
59 // Stop background receive loop
60 void stopReceiveLoop();
61
62 // Get received frames (for testing)
63 std::vector<std::vector<uint8_t>> getReceivedFrames();
64
65 // Clear received frames
67
68 // Get connection stats
69 size_t getFramesReceived() const;
70 size_t getBytesReceived() const;
71
72 // Get last error message
73 std::string getLastError() const;
74
75private:
76 struct Impl;
77 std::unique_ptr<Impl> impl_;
78};
79
80} // namespace camcom::test
81
82#endif // CAMCOM_TEST_WEBSOCKET_CLIENT_HPP
void disconnect()
Definition websocket_client.cpp:217
void clearReceivedFrames()
Definition websocket_client.cpp:428
bool sendText(const std::string &text)
Definition websocket_client.cpp:285
~WebSocketClient()
Definition websocket_client.cpp:112
size_t getBytesReceived() const
Definition websocket_client.cpp:437
void setFrameCallback(FrameCallback callback)
Definition websocket_client.cpp:395
bool send(const std::vector< uint8_t > &data)
Definition websocket_client.cpp:244
std::function< void(const std::vector< uint8_t > &, bool)> FrameCallback
Definition websocket_client.hpp:30
WebSocketClient()
Definition websocket_client.cpp:110
std::string getLastError() const
Definition websocket_client.cpp:441
bool isConnected() const
Definition websocket_client.cpp:240
size_t getFramesReceived() const
Definition websocket_client.cpp:433
std::vector< std::vector< uint8_t > > getReceivedFrames()
Definition websocket_client.cpp:423
void stopReceiveLoop()
Definition websocket_client.cpp:416
bool connect(const std::string &host, int port, const std::string &path="/ws")
Definition websocket_client.cpp:116
void startReceiveLoop()
Definition websocket_client.cpp:400
bool receive(std::vector< uint8_t > &data, int timeout_ms=1000)
Definition websocket_client.cpp:289
Definition test_fixture.hpp:30
Definition websocket_client.cpp:83