/usr/include/ace/UPIPE_Stream.h is in libace-dev 6.3.3+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | // -*- C++ -*-
//=============================================================================
/**
* @file UPIPE_Stream.h
*
* @author Gerhard Lenzer
* @author Douglas C. Schmidt
*/
//=============================================================================
#ifndef ACE_UPIPE_STREAM_H
#define ACE_UPIPE_STREAM_H
#include /**/ "ace/pre.h"
#include "ace/Stream.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#if defined (ACE_HAS_THREADS)
#include "ace/SPIPE.h"
#include "ace/Message_Queue.h"
#include "ace/UPIPE_Addr.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_UPIPE_Stream
*
* @brief Defines the method that transfer data on a UPIPE.
*/
class ACE_Export ACE_UPIPE_Stream : public ACE_SPIPE
{
public:
friend class ACE_UPIPE_Acceptor;
friend class ACE_UPIPE_Connector;
typedef ACE_Stream<ACE_SYNCH> MT_Stream;
// = Initialization and Termination.
ACE_UPIPE_Stream (void);
virtual ~ACE_UPIPE_Stream (void);
/// Shut down the UPIPE and release resources.
int close (void);
/// Return the underlying I/O handle.
ACE_HANDLE get_handle (void) const;
// = Send/recv ACE Message_Blocks.
/// Send a message through the message queue. Returns -1 on error,
/// else 0.
int send (ACE_Message_Block *mb_p,
ACE_Time_Value *timeout = 0);
/// Recv a message from the message queue. Returns -1 on error, else
/// 0.
int recv (ACE_Message_Block *&mb_p,
ACE_Time_Value *timeout = 0);
// = Send/recv char buffers.
/// Send a buffer of @a n bytes through the message queue. Returns -1
/// on error, else number of bytes sent.
ssize_t send (const char *buffer,
size_t n,
ACE_Time_Value *timeout = 0);
/// Recv a buffer of upto @a n bytes from the message queue. Returns
/// -1 on error, else number of bytes read.
ssize_t recv (char *buffer,
size_t n,
ACE_Time_Value *timeout = 0);
/// Send a buffer of exactly @a n bytes to the message queue. Returns
/// -1 on error, else number of bytes written (which should == n).
ssize_t send_n (const char *buffer,
size_t n,
ACE_Time_Value *timeout = 0);
/// Recv a buffer of exactly @a n bytes from the message queue.
/// Returns -1 on error, else the number of bytes read.
ssize_t recv_n (char *buffer,
size_t n,
ACE_Time_Value *timeout = 0);
/// Perform control operations on the UPIPE_Stream.
int control (int cmd, void *val) const;
/// Return the remote address we are connected to.
int get_remote_addr (ACE_UPIPE_Addr &remote_sap) const;
/// Dump the state of an object.
void dump (void) const;
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
// = Meta-type info
typedef ACE_UPIPE_Addr PEER_ADDR;
private:
/// To hold the last ACE_Message_Block read out of the stream. Thus
/// allowing subsequent reads from one ACE_Message_Block
ACE_Message_Block *mb_last_;
/// Address of who we are connected to.
ACE_UPIPE_Addr remote_addr_;
/// Stream component used by the @c UPIPE_Acceptor and
/// @c UPIPE_Connector to link together two UPIPE_Streams.
MT_Stream stream_;
/// Keep track of whether the sender and receiver have both shutdown.
int reference_count_;
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
/// Ensure that we are thread-safe.
ACE_Thread_Mutex lock_;
#endif /* ACE_MT_SAFE */
};
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/UPIPE_Stream.inl"
#endif /* __ACE_INLINE__ */
#endif /* ACE_HAS_THREADS */
#include /**/ "ace/post.h"
#endif /*ACE_UPIPE_STREAM_H */
|