Bredbandskollen CLI  1.2
Asynchronous network task engine
wsuploadtask.h
1 // Copyright (c) 2018 IIS (The Internet Foundation in Sweden)
2 // Written by Göran Andersson <initgoran@gmail.com>
3 
4 #pragma once
5 
6 #include "progresstask.h"
7 
8 class WsUploadTask : public ProgressTask {
9 public:
10  WsUploadTask(const std::string &ticket, const HttpHost &server,
11  unsigned int no_conn = 4, unsigned int max_conn = 20,
12  double duration = 10.0, double max_time = 25.0,
13  double tick_s = 0.1);
14  double start() override;
15  double timerEvent() override;
16  void newRequest(HttpClientConnection *conn) override;
17  bool websocketUpgrade(HttpClientConnection *conn) override;
18  bool wsBinMessage(HttpConnection *conn,
19  const std::string &msg) override;
20  bool wsTextMessage(HttpConnection *conn,
21  const std::string &msg) override;
22  size_t sendWsData(HttpConnection *conn) override;
23 private:
24  bool nextRequest(HttpConnection *conn);
25  double tick_duration_s;
26  static const size_t post_buffer_len = 131072;
27  std::map<HttpClientConnection *, size_t> bytes_left_to_post, post_size;
28 };
HTTP/1.1 client protocol.
Definition: httpclientconnection.h:39
Definition: httpconnection.h:11
The host name and port number of a HTTP host.
Definition: httphost.h:17
Definition: progresstask.h:5
Definition: wsuploadtask.h:8
double timerEvent() override
Definition: wsuploadtask.cpp:53
bool wsTextMessage(HttpConnection *conn, const std::string &msg) override
Incoming websocket text message. Return false to kill connection.
Definition: wsuploadtask.cpp:80
void newRequest(HttpClientConnection *conn) override
Initiate next request, or ignore to close connection.
Definition: wsuploadtask.cpp:20
bool wsBinMessage(HttpConnection *conn, const std::string &msg) override
Incoming websocket binary message. Return false to kill connection.
Definition: wsuploadtask.cpp:74
double start() override
Definition: wsuploadtask.cpp:14
bool websocketUpgrade(HttpClientConnection *conn) override
Called after succesful websocket upgrade.
Definition: wsuploadtask.cpp:70
size_t sendWsData(HttpConnection *conn) override
Definition: wsuploadtask.cpp:45