27#ifndef PDCOM5_PROCESS_H
28#define PDCOM5_PROCESS_H
35#include <pdcom5_export.h>
86class PDCOM5_PUBLIC Process
88 friend class impl::Process;
89 friend class SecureProcess;
94 Process(Process &&) =
delete;
95 Process(Process
const &) =
delete;
96 Process &operator=(Process &&) =
delete;
97 Process &operator=(Process
const &) =
delete;
141 broadcast(
const std::string &message,
const std::string &attr =
"text");
143 struct SubscriptionInfo
153 subscription(subscription),
154 subscriber(subscriber),
159 std::vector<SubscriptionInfo> getActiveSubscriptions()
const;
184 virtual std::string
hostname()
const {
return {}; }
211 virtual int read(
char *buf,
int count) = 0;
241 virtual void write(
const char *buf,
size_t count) = 0;
309 bool list(
const std::string &path =
"");
325 listReply(std::vector<Variable> variables, std::vector<std::string> dirs);
343 bool find(
const std::string &path);
385 virtual bool alive() {
return true; }
421 const std::string &message,
422 const std::string &attr,
423 std::chrono::nanoseconds time_ns,
424 const std::string &user);
427 std::shared_ptr<impl::Process> pimpl;
428 explicit Process(std::shared_ptr<impl::Process> impl);
Definition MessageManagerBase.h:67
void asyncData()
Library entry point for new data.
virtual void write(const char *buf, size_t count)=0
Write data to server.
virtual int read(char *buf, int count)=0
Read data from server.
void broadcast(const std::string &message, const std::string &attr="text")
Send a broadcast message to the server and other clients.
std::string version() const
Remote process version string.
void reset()
Reset communications and clean up internal buffers.
virtual std::string hostname() const
Host name of remote server.
Definition Process.h:184
virtual bool alive()
Test from process whether client is alive.
Definition Process.h:385
virtual void broadcastReply(const std::string &message, const std::string &attr, std::chrono::nanoseconds time_ns, const std::string &user)
Recieve a broadcast message from other clients.
virtual void clientStatisticsReply(std::vector< ClientStatistics > statistics)
Reply for getClientStatistics().
virtual void connected()=0
Protocol initialization completed.
virtual void findReply(const Variable &variable)
Reply to find()
virtual std::string applicationName() const
Name of application user application.
Definition Process.h:172
void callPendingCallbacks()
Call delayed callbacks.
void getClientStatistics()
Request client statistics from the server.
virtual void pingReply()
Ping reply.
Definition Process.h:375
virtual ~Process()
Destructor.
void setAuthManager(Sasl *)
Register a SASL handler.
bool find(const std::string &path)
Find a variable with a corresponding path.
virtual void flush()=0
Flush unsent data in output buffer.
virtual void listReply(std::vector< Variable > variables, std::vector< std::string > dirs)
Reply to list() call.
void setMessageManager(MessageManagerBase *)
Register a Message handler.
std::string name() const
Remote process name string.
Sasl * getAuthManager() const
Get the current SASL handler.
bool list(const std::string &path="")
List a directory path.
SASL Interface for PdCom.
Definition Sasl.h:42
Definition SecureProcess.h:46
Definition Subscriber.h:107
PdCom Subscription interface.
Definition Subscription.h:65
PdCom Variable interface.
Definition Variable.h:68