|
Bredbandskollen CLI
1.2
Asynchronous network task engine
|
A bridge that "owns" the client. More...
#include <synchronousbridge.h>


Public Member Functions | |
| SynchronousBridge (Task *agent, SynchronousClient *client) | |
| double | start () override |
| See Task::start. | |
| void | sendMsgToClient (const std::string &msg) override |
| Will call the client's SynchronousClient::newEventFromAgent method. | |
Public Member Functions inherited from BridgeTask | |
| BridgeTask (Task *agent=nullptr) | |
| Create a bridge to the given agent task. More... | |
| void | taskFinished (Task *task) override |
| If the agent dies, a special message will be sent to notify the client. | |
| void | setAgent (Task *agent) |
| void | die () |
| Terminate the bridge task. | |
| void | sendMsgToClient (const std::string &method, const std::string &jsonobj) |
| Format a message to the client. More... | |
Public Member Functions inherited from Task | |
| Task (const std::string &task_name) | |
| Create a task with the given name. More... | |
| virtual | ~Task () |
| virtual double | timerEvent () |
| 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 | connAdded (SocketConnection *) |
| virtual void | connRemoved (SocketConnection *) |
| 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... | |
Public Member Functions inherited from Logger | |
| 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. | |
Additional Inherited Members | |
Static Public Member Functions inherited from BridgeTask | |
| static std::string | msgToAgent (const std::string &method, const std::string &jsonobj="{}") |
| Format a message to the agent. More... | |
| static bool | isAgentTerminatedMessage (const std::string &msg) |
| static std::string | agentTerminatedMessage (const std::string &err_msg) |
| Format a message to signal that the Agent is gone. | |
Static Public Member Functions inherited from Logger | |
| 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... | |
Protected Member Functions inherited from BridgeTask | |
| void | sendMsgToAgent (const std::string &msg) |
| Send message to the agent. | |
| void | sendMsgToAgent (const std::string &method, const std::string &jsonobj) |
| Format and send message to the agent. | |
Protected Member Functions inherited from Task | |
| 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 | 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. | |
Protected Member Functions inherited from Logger | |
| 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... | |
A bridge that "owns" the client.
The client only exists (or, rather, executes code) from within the bridge.
Shall be used with a SynchronousClient.