# ACE_Streambuf_T< STREAM > Class Template Reference

`#include <IOStream_T.h>`

Inheritance diagram for ACE_Streambuf_T< STREAM >:

[legend]
Collaboration diagram for ACE_Streambuf_T< STREAM >:

[legend]
List of all members.

## Public Member Functions

| ACE_Streambuf_T (STREAM *peer, u_int streambuf_size=ACE_STREAMBUF_SIZE, int io_mode=ios::in|ios::out)
virtual ssize_t | send (char *buf, ssize_t len)
virtual ssize_t | recv (char *buf, ssize_t len, ACE_Time_Value *tv=0)
virtual ssize_t | recv (char *buf, ssize_t len, int flags, ACE_Time_Value *tv=0)
virtual ssize_t | recv_n (char *buf, ssize_t len, int flags=0, ACE_Time_Value *tv=0)

## Protected Member Functions

virtual ACE_HANDLE | get_handle (void)

## Protected Attributes

STREAM * | peer_
| This will be our ACE_SOCK_Stream or similar object.

### template<class STREAM>
class ACE_Streambuf_T< STREAM >

## Constructor & Destructor Documentation

template<class STREAM>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Streambuf_T< STREAM >::ACE_Streambuf_T | ( | STREAM * | peer,
|  | u_int | streambuf_size = `ACE_STREAMBUF_SIZE`,
|  | int | io_mode = `ios::in|ios::out`
| ) |

| We will be given a STREAM by the iostream object which creates us. See the ACE_IOStream template for how that works. Like other streambuf objects, we can be input-only, output-only or both.

## Member Function Documentation

template<class STREAM>
ACE_HANDLE ACE_Streambuf_T< STREAM >::get_handle | ( | void |  | ) | `[protected, virtual]`

| Reimplemented from ACE_Streambuf.

template<class STREAM>
ssize_t ACE_Streambuf_T< STREAM >::recv | ( | char * | buf,
|  | ssize_t | len,
|  | int | flags,
|  | ACE_Time_Value * | tv = `0`
| ) | `[virtual]`

| Implements ACE_Streambuf.

template<class STREAM>
ssize_t ACE_Streambuf_T< STREAM >::recv | ( | char * | buf,
|  | ssize_t | len,
|  | ACE_Time_Value * | tv = `0`
| ) | `[virtual]`

| Implements ACE_Streambuf.

template<class STREAM>
ssize_t ACE_Streambuf_T< STREAM >::recv_n | ( | char * | buf,
|  | ssize_t | len,
|  | int | flags = `0`,
|  | ACE_Time_Value * | tv = `0`
| ) | `[virtual]`

| Implements ACE_Streambuf.

template<class STREAM>
ssize_t ACE_Streambuf_T< STREAM >::send | ( | char * | buf,
|  | ssize_t | len
| ) | `[virtual]`

| Stream connections and "unconnected connections" (ie -- datagrams) need to work just a little differently. We derive custom Streambuf objects for them and provide these functions at that time. Implements ACE_Streambuf.

## Member Data Documentation

template<class STREAM>
STREAM* ACE_Streambuf_T< STREAM >::peer_`[protected]`

| This will be our ACE_SOCK_Stream or similar object.

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

- IOStream_T.h
- IOStream_T.cpp