Skip to content

class flake::IPCConnection

#include </Users/ios_developer/workspace/coldwave-os/build/_deps/flake-src/routing/IPCConnection.h>

Inherits from flake::ConnectionImpl, flake::Connection, flake::ObjectImpl, flake::WireConnectionSink, ClientObjectRegistry, flake::TransportImpl, flake::ConnectedObject, flake::IndicationSink, flake::ConfirmationSink, flake::ConnectedObjectImpl, flake::Object, flake::PropArray, flake::Serializable, flake::Transport

Public Functions

Name
IPCConnection(ConnectionSink * s)
virtual~IPCConnection() override
virtual Message *pollQueue(bool nonblocking) override
virtual voidpushQueue(Message * dgram) override
virtual intconnect() override
virtual intconnect(PropArray & props) override
virtual voidshutdown() override
IPCServerConnection *serverConnection(Router * r)
virtual uint32_twireId() const override

Friends

Name
classIPCServerConnection

Additional inherited members

Public Functions inherited from flake::ConnectionImpl

Name
ConnectionImpl(Wire * w, ConnectionSink * s, AuthenticationSink * a =nullptr)
voidreset()
virtual voiddisconnect() override
Disconnect from the router.
virtual voidqueryObjects(uniqueId_t type, int * numObjects, Object ** objects[]) override
virtual int8_tregisterService(Service * srv, uniqueId_t & uuid, bool requires_auth =false) override
virtual int8_tcreateObject(uniqueId_t & objectType, PropArray & properties, Object ** object) override
intsubscribeObject(ObjectImpl * s, std::function< void(Indication &)> f)
voidunsubscribeObject(ObjectImpl * s)
intopenStream(ObjectImpl * s, string name, Stream ** str)
intsendRequest(Message ** dgram, ConfirmationSink * sink =nullptr, bool synchronous =false, uint32_t timeout_ms =FLAKE_DEFAULT_TIMEOUT_MS)
intvalidateMessageParameters(const addr_t src, const addr_t dst, const uint32_t messageType)
virtual voidref() override
virtual voidunref() override
boolsoftConnect()

Protected Functions inherited from flake::ConnectionImpl

Name
voidpollFunc(void * arg)
~ConnectionImpl()
virtual boolconnected() override
virtual voidonWireConnect() override
virtual voidonWireDisconnect() override
virtual voidonConfirmation(Confirmation & confirmation) override
virtual voidonIndication(Indication & indication) override

Protected Attributes inherited from flake::ConnectionImpl

Name
ThreadQueue< Message * >m_dgramInQueue

Public Functions inherited from flake::Connection

Name
virtual voiddisconnect() =0
Disconnect from the router.
virtual boolconnected() =0
virtual int8_tregisterService(Service * srv, uniqueId_t & uuid, bool requires_auth =false) =0
virtual int8_tcreateObject(uniqueId_t & objectType, PropArray & properties, Object ** object) =0
virtual voidqueryObjects(uniqueId_t type, int * numObjects, Object ** objects[]) =0

Protected Functions inherited from flake::Connection

Name
~Connection() =default

Public Functions inherited from flake::ObjectImpl

Name
ObjectImpl()
ObjectImpl(Service * srv)
Connection *connection()
const char *getObjectType()
boolisInitialized()
virtual TagArraydefaultPropset()
virtual intsubscribe(std::function< void(Indication &)> f) override
virtual voidunsubscribe() override
Unsubscribes from the object, effectively removing ALL subscriptions if there are multiple ones.
virtual intinvoke(string command, PropArray & params, bool blocking, Confirmation ** conf) override
virtual intbroadcast(const string message, PropArray & params) override
virtual intsetProperty(const Property & property) override
virtual voidgetProperty(Property & property) override
virtual intgetProperties(PropArray & properties) override
virtual intsetProperties(PropArray & properties, int timeout_ms =FLAKE_DEFAULT_TIMEOUT_MS) override
intsetPropertiesEx(PropArray & properties, bool dontBlock =false, int timeout_ms =FLAKE_DEFAULT_TIMEOUT_MS)
virtual voidbeginUpdate() override
virtual int8_tcommitUpdate(int timeout_ms =0) override
virtual int8_tcommitUpdate(PropArray * result, int timeout_ms =0) override
virtual voidgetPendingProperty(Property & property) override
virtual intgetPendingProperties(PropArray & properties) override
virtual voidref() override
virtual voidunref() override

Protected Functions inherited from flake::ObjectImpl

Name
ObjectImpl(ConnectionImpl * conn)
virtual~ObjectImpl()
virtual voidonInitialized()
virtual voidonIndication(Indication & indication) override
virtual voidonConfirmation(Confirmation & confirmation) override
intregisterProperties(PropArray & properties)
virtual int8_thandleCustomMessage(string name, PropArray & data, PropArray & outProps)
virtual int8_thandleStreamData(Stream * s, byte * cb, uint32_t len)
virtual intsetPropertyRequested(uint32_t tag, Property & value, const PropArray & transaction, bool internal)
virtual intgetPropertyRequested(uint32_t tag, Property & value)

Public Attributes inherited from flake::ObjectImpl

Name
const addr_tEMPTY_ADDR

Friends inherited from flake::ObjectImpl

Name
classConnectionImpl
classService

Public Functions inherited from flake::WireConnectionSink

Name
virtual voidonWireConnect() =0
virtual voidonWireDisconnect() =0

Public Functions inherited from flake::TransportImpl

Name
TransportImpl(Wire * w, ThreadQueue< Message * > & inQueue, ThreadQueue< Message * > * outQueue, WireConnectionSink * wiresink)
virtual~TransportImpl()
booltryPushQueue(Message * dgram)
ConnectionStateconnectionState()
virtual Wire *wire() const override
virtual intlatency_us() override
virtual boolisConnected() override
virtual boolisShutdown() override
virtual boolisShuttingDown() override
int8_tsendDatagram(Message * d)
intprocessBuffer(unsigned char * receiveBuffer, unsigned int buflen, Message ** d)
virtual voidonWireDisconnect(void ) override

Protected Functions inherited from flake::TransportImpl

Name
voidstart()

Public Attributes inherited from flake::TransportImpl

Name
flakeMutexId_tm_wireMutex

Protected Attributes inherited from flake::TransportImpl

Name
volatile ConnectionStatem_connectionState
ThreadQueue< Message * > *m_dgramOutQueue
ThreadQueue< Message * > &m_dgramInQueue
WireConnectionSink *m_wireConnectionSink
intm_pingCount
uint32_tm_lastDgramTimestamp

Friends inherited from flake::TransportImpl

Name
classRouter

Public Functions inherited from flake::ConnectedObject

Name
virtual addr_taddr() const =0
virtual addr_tbroadcastAddr() const =0
virtual voidref() =0
virtual voidunref() =0

Protected Functions inherited from flake::ConnectedObject

Name
~ConnectedObject() =default

Public Attributes inherited from flake::ConnectedObject

Name
const addr_tEMPTY_ADDR

Public Functions inherited from flake::IndicationSink

Name
virtual voidonIndication(Indication & indication) =0

Protected Functions inherited from flake::IndicationSink

Name
~IndicationSink() =default

Public Functions inherited from flake::ConfirmationSink

Name
virtual voidonConfirmation(Confirmation & confirmation) =0

Protected Functions inherited from flake::ConfirmationSink

Name
~ConfirmationSink() =default

Public Functions inherited from flake::ConnectedObjectImpl

Name
ConnectedObjectImpl(ConnectionImpl * conn)
~ConnectedObjectImpl() override
virtual addr_taddr() const override
virtual addr_tbroadcastAddr() const override
virtual voidonIndication(Indication & indication) override
virtual voidonConfirmation(Confirmation & confirmation) override

Protected Attributes inherited from flake::ConnectedObjectImpl

Name
addr_tm_addr
addr_tm_parentAddr
addr_tm_broadcastAddr
ConnectionImpl *m_connection

Public Functions inherited from flake::Object

Name
virtual intinvoke(string command, PropArray & params, bool blocking, Confirmation ** conf) =0
virtual intbroadcast(string message, PropArray & params) =0
virtual intgetProperties(PropArray & properties) =0
virtual intsetProperties(PropArray & properties, int timeout_ms) =0
virtual intsetProperty(const Property & property) =0
virtual voidgetProperty(Property & property) =0
virtual intsubscribe(std::function< void(Indication &)> f) =0
virtual voidunsubscribe() =0
Unsubscribes from the object, effectively removing ALL subscriptions if there are multiple ones.
virtual voidbeginUpdate() =0
virtual int8_tcommitUpdate(int timeout_ms =0) =0
virtual int8_tcommitUpdate(PropArray * result, int timeout_ms =0) =0
virtual voidgetPendingProperty(Property & property) =0
virtual intgetPendingProperties(PropArray & properties) =0

Protected Functions inherited from flake::Object

Name
~Object() =default

Public Functions inherited from flake::PropArray

Name
virtual~PropArray()
PropArray()
PropArray(const PropArray & va)
const Property &operator[](size_type __n) const
PropArray &operator=(const PropArray & other)
voidcopyFrom(const PropArray & other)
voidclear()
const Property &get(uint32_t tag) const
boolhas(uint32_t tag) const
voidset(const Property & val)
char *toString()
size_typecount() const
virtual boolserialize(uint16_t * len, flake::byte ** buf) override
virtual boolunserialize(uint16_t len, flake::byte * buf) override

Public Attributes inherited from flake::PropArray

Name
PropertyVAL_ERR_NOT_FOUND

Public Functions inherited from flake::Serializable

Name
virtual boolserialize(uint16_t * len, flake::byte ** buf) =0
virtual boolunserialize(uint16_t len, flake::byte * buf) =0

Protected Functions inherited from flake::Serializable

Name
~Serializable() =default

Public Functions inherited from flake::Transport

Name
virtual voidonWireConnect() =0
virtual voidonWireDisconnect() =0
virtual Wire *wire() const =0
virtual Message *pollOutQueue(bool nonblocking) =0
virtual intlatency_us() =0
virtual boolisConnected() =0
virtual boolisShutdown() =0
virtual boolisShuttingDown() =0
virtual voidref() =0
virtual voidunref() =0

Public Functions Documentation

function IPCConnection

cpp
explicit IPCConnection(
    ConnectionSink * s
)

function ~IPCConnection

cpp
inline virtual ~IPCConnection() override

function pollQueue

cpp
virtual Message * pollQueue(
    bool nonblocking
) override

Reimplements: flake::Transport::pollQueue

function pushQueue

cpp
virtual void pushQueue(
    Message * dgram
) override

Reimplements: flake::Transport::pushQueue

function connect

cpp
virtual int connect() override

Reimplements: flake::Transport::connect

function connect

cpp
virtual int connect(
    PropArray & props
) override

Reimplements: flake::ConnectionImpl::connect

function shutdown

cpp
virtual void shutdown() override

Reimplements: flake::Transport::shutdown

function serverConnection

cpp
IPCServerConnection * serverConnection(
    Router * r
)

function wireId

cpp
virtual uint32_t wireId() const override

Reimplements: flake::Transport::wireId

Friends

friend IPCServerConnection

cpp
friend class IPCServerConnection(
    IPCServerConnection 
);