![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Shared memory. More...
#include <pisharedmemory.h>

Public Member Functions | |
| PISharedMemory () | |
| Constructs empty PISharedMemory. More... | |
| PISharedMemory (const PIString &shm_name, int size, DeviceMode mode=ReadWrite) | |
| Constructs a shared memory object with name "shm_name", size "size" and open mode "mode". More... | |
| virtual | ~PISharedMemory () |
| Destructor. More... | |
| PIByteArray | readAll () |
| Reads all shared memory content and returns it as byte array. More... | |
| llong | size () const |
| Returns shared memory size. More... | |
| void | setSize (llong s) |
| Sets shared memory size. More... | |
| bool | isEmpty () const |
| Returns if shared memory object is empty (by size). More... | |
| int | read (void *read_to, int max_size) |
| Reads from shared memory to "read_to" no more than "max_size" and returns read bytes count. More... | |
| int | read (void *read_to, int max_size, int offset) |
| Reads from shared memory starting from "offset" to "read_to" no more than "max_size" and returns read bytes count. More... | |
| int | write (const void *data, int max_size) |
| Writes to shared memory "data" with size "max_size" and returns written bytes count. More... | |
| int | write (const void *data, int max_size, int offset) |
| Writes to shared memory starting from "offset" "data" with size "max_size" and returns written bytes count. More... | |
| int | write (const PIByteArray &data) |
| Writes "data" to shared memory. More... | |
| int | write (const PIByteArray &data, int offset) |
| Writes "data" to shared memory starting from "offset". More... | |
Public Member Functions inherited from PIIODevice | |
| PIIODevice () | |
| Constructs an empty PIIODevice. | |
| PIIODevice (const PIString &path, DeviceMode mode=ReadWrite) | |
| Constructs PIIODevice with path "path" and open mode "mode". | |
| virtual | ~PIIODevice () |
| Destroys the device base object. | |
| DeviceMode | mode () const |
| Returns current open mode. | |
| void | setMode (DeviceMode m) |
| Sets open mode without reopening the device. | |
| DeviceOptions | options () const |
| Returns current device options. | |
| bool | isOptionSet (DeviceOption o) const |
| Returns whether option "o" is enabled. | |
| void | setOptions (DeviceOptions o) |
| Replaces all current device options with "o". | |
| bool | setOption (DeviceOption o, bool yes=true) |
| Sets option "o" to "yes" and returns its previous state. | |
| DeviceInfoFlags | infoFlags () const |
| Returns device channel characteristics. | |
| PIString | path () const |
| Returns current device path. | |
| void | setPath (const PIString &path) |
| Sets device path without reopening the device. | |
| bool | isReadable () const |
| Returns whether the current mode allows reading. | |
| bool | isWriteable () const |
| Returns whether the current mode allows writing. | |
| bool | isOpened () const |
| Returns whether the device is currently opened. | |
| bool | isClosed () const |
| Returns whether the device is currently closed. | |
| virtual bool | canRead () const |
| Returns whether reading is possible right now. | |
| virtual bool | canWrite () const |
| Returns whether writing is possible right now. | |
| void | setReopenEnabled (bool yes=true) |
| Enables or disables automatic reopen attempts during threaded read. | |
| void | setReopenTimeout (PISystemTime timeout) |
| Sets delay between automatic reopen attempts. | |
| bool | isReopenEnabled () const |
| Returns whether automatic reopen is enabled. | |
| PISystemTime | reopenTimeout () |
| Returns delay between automatic reopen attempts. | |
| void | setThreadedReadSlot (ReadRetFunc func) |
| Sets callback invoked after successful threaded reads. More... | |
| void | setThreadedReadData (void *d) |
| Sets custom user data passed to threaded read callback. | |
| void | setThreadedReadBufferSize (int new_size) |
| Sets background read buffer size in bytes. More... | |
| int | threadedReadBufferSize () const |
| Returns background read buffer size in bytes. | |
| const uchar * | threadedReadBuffer () const |
| Returns pointer to the internal threaded-read buffer. | |
| void * | threadedReadData () const |
| Returns custom data passed to threaded read callback. | |
| bool | isThreadedRead () const |
| Returns whether threaded read is running. | |
| bool | isThreadedReadStopping () const |
| Returns whether threaded read is stopping. | |
| void | startThreadedRead () |
| Starts threaded read. | |
| void | startThreadedRead (ReadRetFunc func) |
| Sets threaded read callback to "func" and starts threaded read. | |
| void | stopThreadedRead () |
| Requests threaded read stop. | |
| void | terminateThreadedRead () |
| Terminate threaded read. More... | |
| bool | waitThreadedReadFinished (PISystemTime timeout={}) |
| Waits until threaded read finishes or "timeout" expires. | |
| uint | threadedReadTimeout () const |
| Returns delay between unsuccessful threaded read attempts in milliseconds. | |
| void | setThreadedReadTimeout (uint ms) |
| Sets delay between unsuccessful threaded read attempts in milliseconds. | |
| bool | isThreadedWrite () const |
| Returns whether threaded write is running. | |
| void | startThreadedWrite () |
| Starts threaded write. | |
| void | stopThreadedWrite () |
| Requests threaded write stop. | |
| void | terminateThreadedWrite () |
| Terminate threaded write. More... | |
| bool | waitThreadedWriteFinished (PISystemTime timeout={}) |
| Waits until threaded write finishes or "timeout" expires. | |
| void | clearThreadedWriteQueue () |
| Clears queued threaded-write tasks. | |
| void | start () |
| Starts both threaded read and threaded write. | |
| void | stop () |
| Requests stop for both threaded read and threaded write. | |
| void | stopAndWait (PISystemTime timeout={}) |
| Stops both background threads and waits for completion. | |
| virtual void | interrupt () |
| Interrupts a blocking device operation. | |
| ssize_t | read (void *read_to, ssize_t max_size) |
| Reads at most "max_size" bytes into "read_to". | |
| ssize_t | read (PIMemoryBlock mb) |
| Reads data into memory block "mb". | |
| PIByteArray | read (ssize_t max_size) |
| Reads at most "max_size" bytes and returns them as PIByteArray. | |
| virtual ssize_t | bytesAvailable () const |
| Returns the number of bytes that are available for reading. More... | |
| ssize_t | write (const void *data, ssize_t max_size) |
| Writes at most "max_size" bytes from "data". | |
| PIByteArray | readForTime (PISystemTime timeout) |
| Reads data for up to "timeout" and returns collected bytes. | |
| ullong | writeThreaded (const void *data, ssize_t max_size) |
| Queues "data" for threaded write and returns task ID. | |
| ullong | writeThreaded (const PIByteArray &data) |
| Queues byte array "data" for threaded write and returns task ID. | |
| bool | configure (const PIString &config_file, const PIString §ion, bool parent_section=false) |
| Configures the device from section "section" of file "config_file". More... | |
| virtual PIConstChars | fullPathPrefix () const |
| Returns device prefix used in full-path notation. Creating devices by unambiguous string. | |
| PIString | constructFullPath () const |
| Returns full-path representation of this device, fullPathPrefix() + "://" + ... | |
| void | configureFromFullPath (const PIString &full_path) |
| Configures the device from full-path parameters. | |
| PIVariantTypes::IODevice | constructVariant () const |
| Builds PIVariantTypes::IODevice description for this device. | |
| void | configureFromVariant (const PIVariantTypes::IODevice &d) |
| Configures the device from PIVariantTypes::IODevice. | |
| ssize_t | write (const PIMemoryBlock &mb) |
| Writes memory block "mb" to the device. | |
| bool | open () |
| Opens the device with current path and mode. | |
| bool | open (const PIString &_path) |
| Opens the device with path "path". | |
| bool | open (DeviceMode _mode) |
| Opens the device with mode "mode". | |
| bool | open (const PIString &_path, DeviceMode _mode) |
| Opens the device with path "path" and mode "mode". | |
| bool | close () |
| Closes the device. | |
| ssize_t | write (PIByteArray data) |
| Writes "data" to the device. | |
| virtual void | flush () |
| Immediately flushes device buffers. | |
| void | opened () |
| Raised after successful opening. | |
| void | closed () |
| Raised after successful closing. | |
| void | threadedReadEvent (const uchar *readed, ssize_t size) |
| Raised after threaded read receives some data. | |
| void | threadedWriteEvent (ullong id, ssize_t written_size) |
| Raised after threaded write processes task with ID "id". | |
Public Member Functions inherited from PIObject | |
| PIObject (const PIString &name=PIString()) | |
Constructs an object and initializes its name property. | |
| virtual | ~PIObject () |
| Destroys the object, raises deleted() and disconnects it from the event graph. | |
| PIString | name () const |
Returns the name property of this object. | |
| virtual const char * | className () const |
| Returns the registered class name of this object. | |
| virtual uint | classNameID () const |
| Returns the hash of className(). | |
| virtual const char * | parentClassName () const |
| Returns the registered parent class name, or an empty string for the root. | |
| bool | debug () const |
| Returns whether piCoutObj output is enabled for this object. | |
| void | setName (const PIString &name) |
Sets the name property of this object. | |
| void | setDebug (bool debug) |
| Enables or disables piCoutObj output for this object. | |
| PIVariant | property (const char *name) const |
| Returns the property with name "name". | |
| void | setProperty (const char *name, const PIVariant &value) |
| Sets the property "name" to "value" and creates it if needed. More... | |
| bool | isPropertyExists (const char *name) const |
| Returns whether the property "name" exists. | |
| void | setThreadSafe (bool yes) |
| Enables or disables the internal object mutex during handler execution. More... | |
| bool | isThreadSafe () const |
| Returns whether the internal object mutex is enabled for handler execution. | |
| bool | execute (const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Executes a registered method or handler method by name with the supplied arguments. More... | |
| bool | execute (const PIString &method) |
| Overload of execute() for a method without arguments. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0) |
| Overload of execute() for one argument. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Overload of execute() for two arguments. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Overload of execute() for three arguments. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Overload of execute() for four arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Queues execution of a registered method on the performer object. More... | |
| bool | executeQueued (PIObject *performer, const PIString &method) |
| Overload of executeQueued() for a method without arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| Overload of executeQueued() for one argument. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Overload of executeQueued() for two arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Overload of executeQueued() for three arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Overload of executeQueued() for four arguments. | |
| void | dump (const PIString &line_prefix=PIString()) const |
| Dumps object diagnostics to the project output stream. | |
| PIStringList | scopeList () const |
| Returns the registered inheritance scope of this object, including its own class. | |
| PIStringList | methodsEH () const |
| Returns full signatures of all registered event and handler methods for this class scope. | |
| bool | isMethodEHContains (const PIString &name) const |
| Returns whether a registered event or handler method with this name exists. | |
| PIString | methodEHArguments (const PIString &name) const |
| Returns the comma-separated argument type list of a registered method. | |
| PIString | methodEHFullFormat (const PIString &name) const |
| Returns the full registered signature of a method. | |
| PIString | methodEHFromAddr (const void *addr) const |
| Returns the registered method name for the specified entry-point address. | |
| void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnects this source object from a specific destination handler for event "sig". | |
| void | piDisconnect (const PIString &sig, PIObject *dest) |
| Disconnects this source object from all connections of event "sig" to destination object "dest". | |
| void | piDisconnect (const PIString &sig) |
| Disconnects this source object from all connections of event "sig". | |
| bool | isPIObject () const |
| Returns whether this pointer still refers to a live PIObject instance. | |
| template<typename T > | |
| bool | isTypeOf () const |
| Returns whether this object belongs to class "T" or one of its registered descendants. | |
| template<typename T > | |
| T * | cast () const |
Returns this object cast to "T" when isTypeOf<T>() succeeds, otherwise nullptr. | |
| void | callQueuedEvents () |
| Executes all queued deliveries posted to this performer object. | |
| bool | maybeCallQueuedEvents () |
| Executes queued deliveries only when this object was used as a performer. More... | |
| void | deleteLater () |
| Schedules the object for deferred deletion. More... | |
| void | deleted (PIObject *o) |
| Raised immediately before object destruction. More... | |
Protected Member Functions | |
| bool | openDevice () override |
| Opens the shared memory device. More... | |
| bool | closeDevice () override |
| Closes the shared memory device. More... | |
| PIString | constructFullPathDevice () const override |
| Constructs the full path device string. More... | |
| void | configureFromFullPathDevice (const PIString &full_path) override |
| Configures the device from the full path string. More... | |
| PIPropertyStorage | constructVariantDevice () const override |
| Constructs a variant device representation. More... | |
| void | configureFromVariantDevice (const PIPropertyStorage &d) override |
| Configures the device from a variant representation. More... | |
| ssize_t | readDevice (void *read_to, ssize_t max_size) override |
| Reads from the device. More... | |
| ssize_t | writeDevice (const void *data, ssize_t max_size) override |
| Writes to the device. More... | |
| DeviceInfoFlags | deviceInfoFlags () const override |
| Returns device information flags. More... | |
Protected Member Functions inherited from PIIODevice | |
| virtual bool | configureDevice (const void *e_main, const void *e_parent=0) |
| Reimplement to configure the device from "e_main" and optional "e_parent" entries cast to PIConfig::Entry*. | |
| virtual bool | openDevice ()=0 |
| Reimplement to open device, return value will be set to "opened_" variable. Don't call this function in subclass, use open()! | |
| virtual bool | closeDevice () |
| Reimplement to close the device; inverse return value is stored into "opened_". | |
| virtual ssize_t | readDevice (void *read_to, ssize_t max_size) |
| Reimplement this function to read from your device. | |
| virtual ssize_t | writeDevice (const void *data, ssize_t max_size) |
| Reimplement this function to write to your device. | |
| virtual bool | threadedRead (const uchar *readed, ssize_t size) |
| Called after threaded read receives data; default implementation calls the external callback set by setThreadedReadSlot(). | |
| virtual PIString | constructFullPathDevice () const |
| Reimplement to build device-specific part of full-path string. Default implementation returns path(). | |
| virtual void | configureFromFullPathDevice (const PIString &full_path) |
| Reimplement to configure the device from device-specific full-path parameters. Default implementation calls setPath(). | |
| virtual PIPropertyStorage | constructVariantDevice () const |
| Reimplement to build device-specific variant properties. Default implementation returns PIPropertyStorage with "path". | |
| virtual void | configureFromVariantDevice (const PIPropertyStorage &d) |
| Reimplement to configure the device from PIPropertyStorage. Mode and options are already applied. Default implementation applies "path". | |
| virtual void | optionsChanged () |
| Reimplement to react to changed device options. | |
| virtual DeviceInfoFlags | deviceInfoFlags () const |
| Reimplement to report actual DeviceInfoFlags. Default implementation returns 0. | |
| virtual void | threadedReadBufferSizeChanged () |
| Reimplement to react to new threadedReadBufferSize(). | |
Protected Member Functions inherited from PIObject | |
| PIObject * | emitter () const |
| Returns the source object that raised the current event. More... | |
| virtual void | propertyChanged (const char *name) |
| Virtual method called after property "name" has been changed by setProperty(). | |
Additional Inherited Members | |
Public Types inherited from PIIODevice | |
| enum | DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 } |
| Open modes for PIIODevice. More... | |
| enum | DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 } |
| Generic options supported by some devices. More... | |
| enum | DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 } |
| Characteristics of the device channel. More... | |
| typedef PIFlags< DeviceOption > | DeviceOptions |
| Bitmask of DeviceOption values. | |
| typedef PIFlags< DeviceInfoFlag > | DeviceInfoFlags |
| Bitmask of DeviceInfoFlag values. | |
Static Public Member Functions inherited from PIIODevice | |
| static PIIODevice * | createFromFullPath (const PIString &full_path) |
| Try to create new device by prefix, configure it with configureFromFullPath() and returns it. More... | |
| static PIIODevice * | createFromVariant (const PIVariantTypes::IODevice &d) |
| Try to create new device by prefix, configure it with configureFromVariant() and returns it. | |
| static PIString | normalizeFullPath (const PIString &full_path) |
| Returns normalized full-path representation for "full_path". | |
| static void | splitFullPath (PIString fpwm, PIString *full_path, DeviceMode *mode=0, DeviceOptions *opts=0) |
| Splits full-path string into path, mode and options. | |
| static PIStringList | availablePrefixes () |
| Returns fullPath prefixes of all registered devices. | |
| static PIStringList | availableClasses () |
| Returns class names of all registered devices. | |
Static Public Member Functions inherited from PIObject | |
| static bool | execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Static convenience wrapper for execute(). | |
| static bool | execute (PIObject *o, const PIString &method) |
| Static overload of execute() without arguments. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0) |
| Static overload of execute() for one argument. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Static overload of execute() for two arguments. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Static overload of execute() for three arguments. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Static overload of execute() for four arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Static convenience wrapper for executeQueued(). | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method) |
| Static overload of executeQueued() without arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| Static overload of executeQueued() for one argument. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Static overload of executeQueued() for two arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Static overload of executeQueued() for three arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Static overload of executeQueued() for four arguments. | |
| static PIObject::Connection | piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc) |
Low-level direct connection helper behind the legacy CONNECT* macros. | |
| static PIObject::Connection | piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0) |
| Low-level name-based connection helper behind CONNECTU() and CONNECTU_QUEUED(). | |
| static PIObject::Connection | piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc) |
| Low-level helper that connects an event to a lambda or functor wrapper. | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnects source object "src" from a specific destination handler for event "sig". | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| Disconnects source object "src" from all connections of event "sig" to destination object "dest". | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Disconnects source object "src" from all connections of event "sig". | |
| static void | raiseEvent (PIObject *sender, const uint eventID) |
| Internal event delivery helper for registered events without arguments. | |
| template<typename T0 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0()) |
| Internal event delivery helper for registered events with one argument. | |
| template<typename T0 , typename T1 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1()) |
| Internal event delivery helper for registered events with two arguments. | |
| template<typename T0 , typename T1 , typename T2 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2()) |
| Internal event delivery helper for registered events with three arguments. | |
| template<typename T0 , typename T1 , typename T2 , typename T3 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3()) |
| Internal event delivery helper for registered events with four arguments. | |
| static PIObject * | findByName (const PIString &name) |
Returns the first live object with name "name", or nullptr. | |
| static bool | isPIObject (const PIObject *o) |
| Returns whether "o" points to a live PIObject instance. | |
| static bool | isPIObject (const void *o) |
| Overload of isPIObject() for an untyped pointer. | |
| template<typename T > | |
| static bool | isTypeOf (const PIObject *o) |
| Returns whether "o" belongs to class "T" or one of its registered descendants. | |
| template<typename T > | |
| static bool | isTypeOf (const void *o) |
| Overload of isTypeOf() for an untyped pointer. | |
| static PIString | simplifyType (const char *a, bool readable=true) |
| Simplifies a C++ type spelling for registered-method metadata. | |
Public Attributes inherited from PIIODevice | |
| bool | reopenEnabled |
| setReopenEnabled, default "true". | |
| int | reopenTimeout |
| setReopenTimeout, default 1_s. | |
| int | threadedReadBufferSize |
| setThreadedReadBufferSize in bytes, default 4096. | |
Related Functions inherited from PIIODevice | |
| template<typename T > | |
| T | readDeviceSetting (const PIString &name, const T &def, const PIConfig::Entry *em, const PIConfig::Entry *ep) |
| Helper for reading device settings from configuration entries. More... | |
| #define | REGISTER_DEVICE(class) |
| Enable device instances creation with PIIODevice::createFromFullPath() function. More... | |
| #define | PIIODEVICE(class, prefix) |
| Use this macro instead of PIOBJECT when describe your own PIIODevice. More... | |
Related Functions inherited from PIObject | |
| #define | piCoutObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdOut) for subclasses of PIObject. | |
| #define | piCerrObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdErr) for subclasses of PIObject. | |
| #define | PIOBJECT(name) |
| Put this macro inside a direct PIObject subclass definition to enable registered events, event handlers and class metadata. | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| Put this macro inside a PIObject subclass definition to inherit registered methods and class scope from "parent". | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
Declare a registered event handler method with signature ret name(). | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Declare a registered event handler method with one argument. | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| Declare a registered event handler method with two arguments. | |
| #define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| Declare a registered event handler method with three arguments. | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Declare a registered event handler method with four arguments. | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Synonym of EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
Declare a virtual registered event handler method with signature virtual ret name(). | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Declare a virtual registered event handler method with one argument. | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| Declare a virtual registered event handler method with two arguments. | |
| #define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| Declare a virtual registered event handler method with three arguments. | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Declare a virtual registered event handler method with four arguments. | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Synonym of EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Declare an event method with no arguments. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Declare an event method with one argument. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Declare an event method with two arguments. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| Declare an event method with three arguments. | |
| #define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| Declare an event method with four arguments. | |
| #define | EVENT EVENT0 |
| Synonym of EVENT0. | |
| #define | RAISE_EVENT0(src, event) |
| Compatibility helper that raises event "event" on source object "src". | |
| #define | RAISE_EVENT1(src, event, v0) |
| Compatibility helper that raises event "event" with one argument. | |
| #define | RAISE_EVENT2(src, event, v0, v1) |
| Compatibility helper that raises event "event" with two arguments. | |
| #define | RAISE_EVENT3(src, event, v0, v1, v2) |
| Compatibility helper that raises event "event" with three arguments. | |
| #define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| Compatibility helper that raises event "event" with four arguments. | |
| #define | CONNECTU(src, event, dest, handler) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTL(src, event, functor) |
| Connect event "event" from object "src" to lambda-expression "functor". More... | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| Legacy compatibility helper that connects an event to a registered handler with compile-time signature spelling. More... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Legacy compatibility helper for a one-argument registered event or handler. More... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Legacy compatibility helper for a two-argument registered event or handler. More... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Legacy compatibility helper for a three-argument registered event or handler. More... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Legacy compatibility helper for a four-argument registered event or handler. More... | |
| #define | CONNECT CONNECT0 |
| Synonym of CONNECT0. More... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification. More... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for one argument. More... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for two arguments. More... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for three arguments. More... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for four arguments. More... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Synonym of WEAK_CONNECT0. More... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| Disconnect a registered event from a registered event handler. | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| Disconnect a one-argument registered event from a registered event handler. | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| Disconnect a two-argument registered event from a registered event handler. | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Disconnect a three-argument registered event from a registered event handler. | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Disconnect a four-argument registered event from a registered event handler. | |
| #define | DISCONNECT DISCONNECT0 |
| Synonym of DISCONNECT0. | |
| #define | HANDLER(handler) |
| Low-level helper that expands to the registered handler entry point. | |
Shared memory.
Shared memory is used as a single data storage accessible to various processes by name. At the first opening of the shared memory object, size() bytes are allocated, by default 64 KiB. All processes must use the same size() to avoid errors.
The shared memory object has no read/write position, each call to read() or write() accesses the beginning of memory. For working with a specific memory area, overloaded methods with "offset" indication are used.
|
explicit |
Constructs empty PISharedMemory.
Constructs an empty shared memory object with default size 64 KiB.
|
explicit |
Constructs a shared memory object with name "shm_name", size "size" and open mode "mode".
Constructs a shared memory object with the specified name, size, and open mode. If "shm_name" is not empty, the object is automatically opened.
|
virtual |
Destructor.
Stops and closes the shared memory object.
| PIByteArray PISharedMemory::readAll | ( | ) |
Reads all shared memory content and returns it as byte array.
Reads the entire shared memory and returns it as a PIByteArray. Returns empty array if size is less than or equal to zero.
| llong PISharedMemory::size | ( | ) | const |
Returns shared memory size.
Returns the size of the shared memory in bytes. Returns -1 if the device is closed.
| void PISharedMemory::setSize | ( | llong | s | ) |
Sets shared memory size.
Sets the size of the shared memory. If the device is open, it will be closed and reopened with the new size.
|
inline |
Returns if shared memory object is empty (by size).
Returns true if the shared memory size is less than or equal to zero.
| int PISharedMemory::read | ( | void * | read_to, |
| int | max_size | ||
| ) |
Reads from shared memory to "read_to" no more than "max_size" and returns read bytes count.
Reads from the beginning of shared memory (offset 0) to the buffer "read_to" no more than "max_size" bytes.
| int PISharedMemory::read | ( | void * | read_to, |
| int | max_size, | ||
| int | offset | ||
| ) |
Reads from shared memory starting from "offset" to "read_to" no more than "max_size" and returns read bytes count.
Reads from the shared memory starting at the specified "offset" to the buffer "read_to" no more than "max_size" bytes.
| int PISharedMemory::write | ( | const void * | data, |
| int | max_size | ||
| ) |
Writes to shared memory "data" with size "max_size" and returns written bytes count.
Writes to the beginning of shared memory (offset 0) from the buffer "data" no more than "max_size" bytes.
| int PISharedMemory::write | ( | const void * | data, |
| int | max_size, | ||
| int | offset | ||
| ) |
Writes to shared memory starting from "offset" "data" with size "max_size" and returns written bytes count.
Writes to the shared memory starting at the specified "offset" from the buffer "data" no more than "max_size" bytes.
|
inline |
Writes "data" to shared memory.
Writes the entire PIByteArray "data" to the beginning of shared memory (offset 0).
|
inline |
Writes "data" to shared memory starting from "offset".
Writes the entire PIByteArray "data" to the shared memory starting at the specified "offset".
|
overrideprotectedvirtual |
Opens the shared memory device.
Creates or opens the shared memory object depending on the system (POSIX or Windows).
Implements PIIODevice.
|
overrideprotectedvirtual |
Closes the shared memory device.
Closes the shared memory object and releases resources.
Reimplemented from PIIODevice.
|
overrideprotectedvirtual |
Constructs the full path device string.
Constructs a string in the format "path:size" representing the full path to the shared memory.
Reimplemented from PIIODevice.
|
overrideprotectedvirtual |
Configures the device from the full path string.
Parses the full path string in the format "path:size" and configures the device.
| full_path | The full path string to parse. |
Reimplemented from PIIODevice.
|
overrideprotectedvirtual |
Constructs a variant device representation.
Constructs a PIPropertyStorage with "path" and "size" properties representing the device state.
Reimplemented from PIIODevice.
|
overrideprotectedvirtual |
Configures the device from a variant representation.
Configures the device from a PIPropertyStorage containing "path" and "size" properties.
| d | The property storage to configure from. |
Reimplemented from PIIODevice.
|
inlineoverrideprotectedvirtual |
Reads from the device.
Calls read() with offset 0.
Reimplemented from PIIODevice.
|
inlineoverrideprotectedvirtual |
Writes to the device.
Calls write() with offset 0.
Reimplemented from PIIODevice.
|
inlineoverrideprotectedvirtual |
Returns device information flags.
Returns the Reliable flag indicating that the device operates reliably.
Reimplemented from PIIODevice.