#include <FIFO_Recv_Msg.h>
Public Member Functions | |
ACE_FIFO_Recv_Msg (void) | |
Default constructor. | |
ACE_FIFO_Recv_Msg (const ACE_TCHAR *rendezvous, int flags=O_CREAT|O_RDONLY, mode_t perms=ACE_DEFAULT_FILE_PERMS, int persistent=1, LPSECURITY_ATTRIBUTES sa=0) | |
Open up a record-oriented named pipe for reading. | |
int | open (const ACE_TCHAR *rendezvous, int flags=O_CREAT|O_RDONLY, mode_t perms=ACE_DEFAULT_FILE_PERMS, int persistent=1, LPSECURITY_ATTRIBUTES sa=0) |
Open up a record-oriented named pipe for reading. | |
ssize_t | recv (ACE_Str_Buf &msg) |
Receive a message based on attributes in an ACE_Str_Buf. | |
ssize_t | recv (void *buf, size_t len) |
Receive a message based on buffer pointer and maximum size. | |
void | dump (void) const |
Dump the state of an object. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. |
This method works slightly differently on platforms with the ACE_HAS_STREAM_PIPES
configuration setting than those without. With ACE_HAS_STREAM_PIPES, the getmsg()
system function is used and it preserves message boundaries internally. Without ACE_HAS_STREAM_PIPES
, the message boundaries are emulated by this class and ACE_FIFO_Send_Msg cooperating. The sending class first writes an integer number of bytes in the message, then the message. ACE_FIFO_Recv_Msg reads the count, then the data. The operational differences occur primarily when a message is larger than what a caller of this class requests. See recv() for details.
ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg | ( | void | ) |
Default constructor.
ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg | ( | const ACE_TCHAR * | rendezvous, | |
int | flags = O_CREAT | O_RDONLY , |
|||
mode_t | perms = ACE_DEFAULT_FILE_PERMS , |
|||
int | persistent = 1 , |
|||
LPSECURITY_ATTRIBUTES | sa = 0 | |||
) |
Open up a record-oriented named pipe for reading.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ssize_t ACE_FIFO_Recv_Msg::recv | ( | ACE_Str_Buf & | msg | ) |
Receive a message based on attributes in an ACE_Str_Buf.
msg | Reference to an ACE_Str_Buf whose buf member points to the memory to receive the data and maxlen member contains the maximum number of bytes to receive. On return after successfully reading data, the len member contains the number of bytes received and placed in the buffer pointed to by msg.buf . |
-1 | Error; consult errno for specific error number. |
ACE_HAS_STREAM_PIPES
configuration setting is defined, the return value is the number of bytes received in the message and will be the same as buf.len
. The return value from the getmsg()
system function is discarded. If ACE_HAS_STREAM_PIPES
is not defined, the number of bytes in the message read from the FIFO is returned. If the message is larger than the maximum length requested in msg.maxlen
, the return value reflects the entire message length, and the msg.len
member reflects how many bytes were actually placed in the caller's buffer. Any part of the message longer than msg.maxlen
is discarded. ACE_INLINE ssize_t ACE_FIFO_Recv_Msg::recv | ( | void * | buf, | |
size_t | len | |||
) |
Receive a message based on buffer pointer and maximum size.
buf | Pointer to the memory to receive the data. | |
len | The maximum number of bytes to receive. |
-1 | Error; consult errno for specific error number. |
ACE_HAS_STREAM_PIPES
configuration setting. With ACE_HAS_STREAM_PIPES
, the return value will be the same as ACE_HAS_STREAM_PIPES
, the return value is the total length of the message, including bytes in excess of Reimplemented from ACE_FIFO_Recv.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_FIFO_Recv_Msg::dump | ( | void | ) | const |