Bredbandskollen CLI  1.2
Asynchronous network task engine
wsdownloadtask.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 WsDownloadTask : public ProgressTask {
9 public:
10  WsDownloadTask(const std::string &ticket, const HttpHost &server,
11  unsigned int no_conn = 10, unsigned int max_conn = 100,
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 *) override;
17  bool requestComplete(HttpClientConnection *) override;
18  bool websocketUpgrade(HttpClientConnection *) override;
19  bool wsBinMessage(HttpConnection *conn,
20  const std::string &msg) override;
21  bool wsTextMessage(HttpConnection *conn,
22  const std::string &msg) override;
23  bool wsBinHeader(HttpConnection *conn, size_t ) override {
24  conn->streamWsResponse();
25  return true;
26  }
27  bool wsBinData(HttpConnection *conn, const char *, size_t count) override;
28 private:
29  bool nextRequest(HttpConnection *conn);
30  double tick_duration_s;
31  double dynamic_conn_limit;
32 };
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: wsdownloadtask.h:8
bool requestComplete(HttpClientConnection *) override
Called when response has been fully read.
Definition: wsdownloadtask.cpp:71
bool wsBinMessage(HttpConnection *conn, const std::string &msg) override
Incoming websocket binary message. Return false to kill connection.
Definition: wsdownloadtask.cpp:79
double start() override
Definition: wsdownloadtask.cpp:16
double timerEvent() override
Definition: wsdownloadtask.cpp:22
void newRequest(HttpClientConnection *) override
Initiate next request, or ignore to close connection.
Definition: wsdownloadtask.cpp:48
bool wsBinData(HttpConnection *conn, const char *, size_t count) override
Incoming partial websocket binary message.
Definition: wsdownloadtask.cpp:86
bool websocketUpgrade(HttpClientConnection *) override
Called after succesful websocket upgrade.
Definition: wsdownloadtask.cpp:75
bool wsTextMessage(HttpConnection *conn, const std::string &msg) override
Incoming websocket text message. Return false to kill connection.
Definition: wsdownloadtask.cpp:93
bool wsBinHeader(HttpConnection *conn, size_t) override
Called when headers of a binary message are read.
Definition: wsdownloadtask.h:23