Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_FIFO_Recv_Msg Class Reference

Receiver side for the record oriented C++ wrapper for UNIX FIFOs. More...

`#include <FIFO_Recv_Msg.h>`

Inheritance diagram for ACE_FIFO_Recv_Msg:

[legend]
Collaboration diagram for ACE_FIFO_Recv_Msg:

[legend]
List of all members.

## Public Methods
| ACE_FIFO_Recv_Msg (void)
| Default constructor. More...
| ACE_FIFO_Recv_Msg (const ACE_TCHAR *rendezvous, int flags=O_CREAT|O_RDONLY, int perms=ACE_DEFAULT_FILE_PERMS, int persistent=1, LPSECURITY_ATTRIBUTES sa=0)
| Open up a record-oriented named pipe for reading. More...
int | open (const ACE_TCHAR *rendezvous, int flags=O_CREAT|O_RDONLY, int perms=ACE_DEFAULT_FILE_PERMS, int persistent=1, LPSECURITY_ATTRIBUTES sa=0)
| Open up a record-oriented named pipe for reading. More...
ssize_t | recv (ACE_Str_Buf &msg)
ssize_t | recv (void *buf, size_t len)
void | dump (void) const
| Dump the state of an object. More...
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks. More...

## Detailed Description

Receiver side for the record oriented C++ wrapper for UNIX FIFOs.

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.

## Constructor & Destructor Documentation

ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg | ( | void |  | ) |

| Default constructor.

ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg | ( | const ACE_TCHAR * | fifo_name,
|  | int | flags = O_CREAT | O_RDONLY,
|  | int | perms = ACE_DEFAULT_FILE_PERMS,
|  | int | persistent = 1,
|  | LPSECURITY_ATTRIBUTES | sa = 0
| ) |

| Open up a record-oriented named pipe for reading.

## Member Function Documentation

void ACE_FIFO_Recv_Msg::dump | ( | void |  | ) | const

| Dump the state of an object. Reimplemented from ACE_FIFO_Recv.

int ACE_FIFO_Recv_Msg::open | ( | const ACE_TCHAR * | fifo_name,
|  | int | flags = O_CREAT | O_RDONLY,
|  | int | perms = ACE_DEFAULT_FILE_PERMS,
|  | int | persistent = 1,
|  | LPSECURITY_ATTRIBUTES | sa = 0
| ) |

| Open up a record-oriented named pipe for reading. Reimplemented from ACE_FIFO_Recv.

ASYS_INLINE ssize_t ACE_FIFO_Recv_Msg::recv | ( | void * | buf,
|  | size_t | max_len
| ) |

  | Parameters:
  buf | Pointer to the memory to receive the data.
  len | The maximum number of bytes to receive.
  Return values:
  -1 | Error; consult `errno` for specific error number.
Returns: The number of bytes received in the message. For messages that are larger than the requested maximum size, the behavior is different depending on the `ACE_HAS_STREAM_PIPES` configuration setting. With `ACE_HAS_STREAM_PIPES`, the return value will be the same as len (this is also possible if the message is exactly the same length as len, and the two cases are indistinguishable). Without `ACE_HAS_STREAM_PIPES`, the return value is the total length of the message, including bytes in excess of len. The excess bytes are discarded. Reimplemented from ACE_FIFO_Recv.

ASYS_INLINE ssize_t ACE_FIFO_Recv_Msg::recv | ( | ACE_Str_Buf & | recv_msg | ) |

  | Parameters:
  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`.
  Return values:
  -1 | Error; consult `errno` for specific error number.
Returns: If the `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.

## Member Data Documentation

ACE_FIFO_Recv_Msg::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_FIFO_Recv.

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

- FIFO_Recv_Msg.h
- FIFO_Recv_Msg.cpp
- FIFO_Recv_Msg.i