|
| InfoTask (const std::string &label, const std::string &ticket_string, const std::string &hash_key, const HttpHost &server, unsigned int no_conn=1, unsigned int max_conn=3, double duration=300.0) |
|
void | newRequest (HttpClientConnection *) override |
| Initiate next request, or ignore to close connection.
|
|
bool | requestComplete (HttpClientConnection *) override |
| Called when response has been fully read.
|
|
bool | wsTextMessage (HttpConnection *, const std::string &msg) override |
| Incoming websocket text message. Return false to kill connection.
|
|
double | timerEvent () override |
|
void | setUploadDeadline (double t) |
|
void | setInfoDeadline (double t) |
|
| MeasurementTask (const std::string &name, const std::string &ticket, const HttpHost &httpserver, unsigned int no_conn=1, unsigned int max_conn=3, double timeout=25.0) |
|
std::string | t () |
|
std::string | cacheLabel () override |
|
double | start () override |
|
virtual void | connectionLost () |
|
| HttpClientTask (const std::string &name, const HttpHost &httpserver) |
|
virtual bool | headerComplete (HttpClientConnection *) |
| Called when response headers are fully read and parsed, except for websocket upgrades, where websocketUpgrade is called instead. More...
|
|
virtual bool | websocketUpgrade (HttpClientConnection *) |
| Called after succesful websocket upgrade. More...
|
|
virtual void | payload (HttpClientConnection *, char *, size_t) |
| Data has arrived from the server. More...
|
|
virtual size_t | doPost (HttpClientConnection *conn, size_t len) |
| Send POST data, return number of bytes sent. More...
|
|
std::string | serverHost () const |
| Return server's host name.
|
|
virtual std::string | httpHeaderLines (const std::string &uri) const |
| Extra header lines to be added to outgoing requests. More...
|
|
void | setCookie (const std::string &header_line, const std::string &uri) |
|
void | setUserAgentString (const std::string &s) |
|
| HttpTask (const std::string &name) |
|
virtual bool | wsBinMessage (HttpConnection *, const std::string &msg) |
| Incoming websocket binary message. Return false to kill connection.
|
|
virtual bool | wsBinHeader (HttpConnection *, size_t) |
| Called when headers of a binary message are read. More...
|
|
virtual bool | wsTextHeader (HttpConnection *, size_t) |
| Called when headers of a text message are read. More...
|
|
virtual bool | wsBinData (HttpConnection *, const char *, size_t) |
| Incoming partial websocket binary message. More...
|
|
virtual bool | wsTextData (HttpConnection *, const char *, size_t) |
| Incoming partial websocket text message. More...
|
|
virtual size_t | sendWsData (HttpConnection *conn) |
|
| Task (const std::string &task_name) |
| Create a task with the given name. More...
|
|
virtual | ~Task () |
|
void | resetTimer (double s) |
| Run timerEvent after s seconds instead of previous value.
|
|
bool | finishedOK () const |
| Return true if the task has finished normally. More...
|
|
bool | wasKilled () const |
| Return true if the task is finished and was aborted by another task. More...
|
|
bool | wasError () const |
| Return true if the task terminated with an error. More...
|
|
bool | wasTimeout () const |
| Return true if the task terminated with a timeout. More...
|
|
bool | hasStarted () const |
|
void | killChildTaskWhenFinished () |
|
virtual SocketConnection * | newClient (int, const char *, uint16_t, ServerSocket *) |
|
virtual bool | adoptConnection (Socket *conn) |
|
virtual void | serverAdded (ServerSocket *) |
|
virtual void | serverRemoved (ServerSocket *) |
|
std::string | result () const |
| To get the "result" of the task after it has finished.
|
|
std::set< Socket * > | getMyConnections () const |
| Return all current connections.
|
|
bool | isActive (Socket *conn) const |
| Return true if the connection still exists.
|
|
void | wakeUp () |
| Restart all idle connections.
|
|
bool | wakeUpConnection (SocketConnection *s) |
| If s is idle, restart it and return true. Otherwise return false.
|
|
void | cancelConnection (SocketConnection *s) |
| Terminate and remove a connection.
|
|
std::string | message () const |
| Return the current (outgoing) message.
|
|
bool | startObserving (Task *to) |
|
void | executeHandler (Task *receiver, const std::string &message) |
|
double | elapsed () const |
| Return number of seconds since the task was started. More...
|
|
virtual Task * | createWorkerTask (unsigned int wno) |
|
virtual void | finishWorkerTask (unsigned int) |
|
virtual void | newWorkerChannel (SocketReceiver *, unsigned int) |
|
virtual void | workerMessage (SocketReceiver *, const char *buf, size_t len) |
| Called if parent/worker sends a message through a SocketReceiver:
|
|
virtual PollState | connectionReady (SocketConnection *) |
|
virtual PollState | msgFromConnection (SocketConnection *, const std::string &) |
|
uint64_t | bytesSent () const |
| Number of bytes sent through SocketConnection objects owned by me.
|
|
uint64_t | bytesReceived () const |
| Number of bytes received through SocketConnection objects owned by me.
|
|
void | resetByteCount () |
| Reset the values for the methods Task::bytesSent and Task::bytesReceived.
|
|
void | notifyBytesSent (uint64_t n) |
| Notify the task that data has been sent on its behalf. More...
|
|
void | notifyBytesReceived (uint64_t n) |
| Notify the task that data has been received on its behalf. More...
|
|
| Logger (std::string label) |
|
std::string | label () const |
| Return the object's log label.
|
|
void | resetLabel (const std::string &new_label) |
| Modify the object's log label.
|
|
|
static std::string | json_obj (const std::string &attr, const std::string &value) |
|
static std::string | fValue (double x) |
|
static std::string | calculateLatency (std::vector< double > &samples) |
|
static bool | setLocalAddress (const std::string &addr, uint16_t iptype) |
| Bind all subsequent client sockets to the given local ip address. More...
|
|
static const std::string & | getLocalAddress () |
|
static void | setLogFile (std::ostream &stream) |
| Set global log destination. More...
|
|
static void | reopenLogFile (const std::string &filename) |
| If current log is a file (ofstream), reopen it with new filename:
|
|
static void | setLogLimit (unsigned int loglines=0, unsigned int warnlines=0, unsigned int errlines=0) |
| Set max number of lines of info/warn/err log. More...
|
|
static void | sayTime (std::ostream &stream) |
| Write current local time to the given stream.
|
|
static bool | inError () |
| Return true if any error has been logged (globally since start)
|
|
static std::ostream & | err_log (const std::string &label) |
| Write a line of error log. More...
|
|
static std::ostream & | warn_log (const std::string &label) |
| Write a line of warning log. More...
|
|
static std::ostream & | log (const std::string &label) |
| Write a line of info log. More...
|
|
static void | flushLogFile () |
|
static void | pauseLogging () |
| Disable all log output until next call to Logger::setLogFile.
|
|
static double | secondsSince (const TimePoint &t) |
|
static double | secondsTo (const TimePoint &t) |
|
static int64_t | msSince (const TimePoint &t) |
|
static int64_t | msTo (const TimePoint &t) |
|
static bool | hasExpired (const TimePoint &t) |
| Return true if current time is after the given TimePoint.
|
|
static TimePoint | timeNow () |
| Return current time.
|
|
static TimePoint | timeAfter (double s) |
| Return current time plus s seconds.
|
|
static TimePoint | timeMax () |
| Return a very distant time.
|
|
static std::chrono::microseconds | toUs (double t) |
| Convert s (seconds) to std::chrono::microseconds.
|
|
static std::string | dateString (time_t t=0) |
| Return local time, formatted as 2023-10-14T09:38:47+0200.
|
|
static std::string | dateString2 (time_t t=0) |
| Return local time, formatted as Sat, 14 Oct 2023 09:38:47.
|
|
static std::string | createHashKey (unsigned int length=20) |
| Return a random string. More...
|
|
void | checkConnectionCount () |
|
void | setNoConnections (unsigned int no) |
|
unsigned int | getNoConnections () const |
|
unsigned int | currentNoConnections () const |
|
void | noMoreConnections () |
|
bool | timeout () |
|
double | timeout_s () |
|
bool | createNewConnection () |
|
std::string | proxyHost () const |
|
uint32_t | proxyPort () const |
|
CookieManager * | cookieMgr () const |
|
void | setServer (const std::string hostname, uint16_t port_number=80) |
|
bool | addConnection (SocketConnection *conn) |
|
bool | addConnected (SocketConnection *conn) |
|
bool | addServer (ServerSocket *conn) |
| As Task::addConnected, but with a server connection.
|
|
bool | parseListen (const TaskConfig &tc, const std::string &log_label) |
|
virtual bool | tlsSetKey (ServerSocket *conn, const std::string &crt_path, const std::string &key_path, const std::string &password) |
| Use SSL certificate for a listening socket.
|
|
void | setResult (const std::string &res) |
|
virtual void | setError (const std::string &msg) |
|
virtual void | setTimeout () |
|
void | setMessage (const std::string &msg) |
|
virtual void | taskFinished (Task *task) |
|
virtual void | taskMessage (Task *task) |
|
virtual void | handleExecution (Task *sender, const std::string &message) |
| Callback to execute code on behalf of another Task.
|
|
bool | terminated () const |
| Return true if task is finished. More...
|
|
void | addNewTask (Task *task, Task *parent=nullptr) |
| Insert another Task for execution by the EventLoop.
|
|
void | addNewThread (Task *task, const std::string &name="ThreadLoop", std::ostream *log_file=nullptr, Task *parent=nullptr) |
| Run task in a new thread.
|
|
void | getMyTasks (std::set< Task * > &tset) |
| Add all my child tasks to the given set.
|
|
void | abortMyTasks () |
| Terminate all my child tasks.
|
|
void | abortTask (Task *task) |
| Terminate a task.
|
|
void | abortAllTasks () |
| Terminate all tasks and exit the EventLoop.
|
|
int | runProcess (const char *const argv[]) |
|
virtual void | processFinished (int pid, int wstatus) |
| Will be called to notify when an external process has terminated.
|
|
WorkerProcess * | createWorker (std::ostream *log_file=nullptr, unsigned int channels=1, unsigned int wno=0) |
| Run task returned by this->createWorkerTask in a child process. Return nullptr on failure.
|
|
WorkerProcess * | createWorker (const std::string &log_file_name, unsigned int channels=1, unsigned int wno=0) |
| Run task returned by this->createWorkerTask in a child process. Return nullptr on failure.
|
|
std::ostream & | errno_log () const |
| Write a line of error log after a failed system call has set the global errno to a non-zero value. More...
|
|
std::ostream & | err_log () const |
| Write a line of error log. More...
|
|
std::ostream & | warn_log () const |
| Write a line of warning log. More...
|
|
std::ostream & | log () const |
| Write a line of info log. More...
|
|
std::ostream & | dbg_log () const |
| Write a line of debug log. More...
|
|