DCMTK Version 3.6.9
OFFIS DICOM Toolkit
Loading...
Searching...
No Matches
OFIPCMessageQueueClient Class Reference

a client class for one-directional IPC messaging. More...

Public Member Functions

 OFIPCMessageQueueClient ()
 default constructor
 
virtual ~OFIPCMessageQueueClient ()
 destructor, will implicitly call closeQueue() if not already called by the user.
 
OFCondition openQueue (const char *name, Uint32 port)
 open (access) an existing message queue
 
OFBool hasQueue () const
 check if this object manages an open message queue
 
OFCondition closeQueue ()
 close the message queue
 
void detachQueue ()
 resets this object to default constructed state without closing the message queue.
 
OFCondition sendMessage (const OFString &msg)
 send a message by placing it into the message queue.
 

Detailed Description

a client class for one-directional IPC messaging.

It enables the user to access an existing IPC message queue and to send messages to that queue.

Note
Note that there are platform specific limits to the message queue implementation depending on the underlying operating system API used. For example, Posix message queues on Linux only permit a maximum of 10 messages in the queue, and a maximum of 255 open queues system-wide. System V message queues on Linux only permit a maximum of 8 kBytes of data in a message queue. Furthermore, there are also limits on the maximum message size. For portable usage, messages should be text-based and short (e.g. a DICOM UID), and message queues should be kept short.

Member Function Documentation

◆ closeQueue()

OFCondition OFIPCMessageQueueClient::closeQueue ( )

close the message queue

Returns
EC_Normal if successful, an error code otherwise

◆ detachQueue()

void OFIPCMessageQueueClient::detachQueue ( )

resets this object to default constructed state without closing the message queue.

This method may be called by forked child processes to make sure that the destructor executed in the child process will not close the message queue for the parent process as well.

◆ hasQueue()

OFBool OFIPCMessageQueueClient::hasQueue ( ) const

check if this object manages an open message queue

Returns
true if message queue is open, false otherwise

◆ openQueue()

OFCondition OFIPCMessageQueueClient::openQueue ( const char * name,
Uint32 port )

open (access) an existing message queue

Parameters
aname for the queue that is known both to the client and the server. Typically the name of the tool using the queue. Must not contain characters that are not permitted in a filename. Should not be longer than 128 bytes.
anumber that is known both to the client and the server. Usually this will be the port number under which the server process accepts incoming TCP/IP network connection. When used in other contexts, a number larger than 65535 should be used.
Returns
EC_Normal if successful, an error code otherwise

◆ sendMessage()

OFCondition OFIPCMessageQueueClient::sendMessage ( const OFString & msg)

send a message by placing it into the message queue.

Parameters
msgthe message to be sent. Note that there are platform specific limitations to the maximum message size, e.g. 8 kByte per message for Posix message queues on Linux and 4 kByte per message for System V message queues on Linux. In general, messages should be short.
Returns
EC_Normal if successful, an error code otherwise

The documentation for this class was generated from the following file:


Generated on Sat Mar 1 2025 for DCMTK Version 3.6.9 by Doxygen 1.13.2