11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
18PROMEKI_NAMESPACE_BEGIN
50class LocalServer :
public ObjectBase {
51 PROMEKI_OBJECT(LocalServer, ObjectBase)
54 static constexpr int DefaultBacklog = 50;
57 static constexpr uint32_t DefaultPermissions = 0600;
60 static bool isSupported();
66 LocalServer(ObjectBase *parent =
nullptr);
69 ~LocalServer()
override;
85 Error listen(
const String &path, uint32_t mode = DefaultPermissions,
const String &groupName = String(),
86 int backlog = DefaultBacklog);
92 bool isListening()
const {
return _listening; }
95 const String &serverPath()
const {
return _path; }
106 LocalSocket *nextPendingConnection();
109 bool hasPendingConnections()
const;
116 Error waitForNewConnection(
unsigned int timeoutMs = 0);
119 int socketDescriptor()
const {
return _fd; }
122 PROMEKI_SIGNAL(newConnection);
126 bool _listening =
false;
127 bool _unlinkOnClose =
false;