# IOStream.h File Reference

`#include "ace/ACE_export.h"`
`#include "ace/streams.h"`
`#include "ace/Time_Value.h"`
`#include "ace/os_include/sys/os_types.h"`
`#include "ace/IOStream_T.h"`

Include dependency graph for IOStream.h:

This graph shows which files directly or indirectly include this file:

## Classes

class | ACE_Streambuf
| Create your custom streambuf by providing and ACE_*_Stream object to this template. I have tested it with ACE_SOCK_Stream and it should work fine for others as well. More...

## Defines

#define | GET_SIG(MT, DT) inline virtual MT& operator>> (DT v)
#define | GET_CODE
#define | GET_PROT(MT, DT, CODE) GET_SIG(MT,DT) CODE
#define | GET_FUNC(MT, DT) GET_PROT(MT,DT,GET_CODE)
#define | PUT_SIG(MT, DT) inline virtual MT& operator<< (DT v)
#define | PUT_CODE
#define | PUT_PROT(MT, DT, CODE) PUT_SIG(MT,DT) CODE
#define | PUT_FUNC(MT, DT) PUT_PROT(MT,DT,PUT_CODE)
#define | GET_FUNC_SET0(MT, CODE, CODE2)
#define | PUT_FUNC_SET0(MT, CODE, CODE2)
#define | GET_FUNC_SET1(MT, CODE, CODE2)
#define | PUT_FUNC_SET1(MT, CODE, CODE2)
#define | GET_MANIP_CODE { if (ipfx ()) { (*func) (*this); } isfx (); return *this; }
#define | PUT_MANIP_CODE { if (opfx ()) { (*func) (*this); } osfx (); return *this; }
#define | GET_FUNC_SET(MT) GET_FUNC_SET1(MT,GET_CODE,GET_MANIP_CODE)
#define | PUT_FUNC_SET(MT) PUT_FUNC_SET1(MT,PUT_CODE,PUT_MANIP_CODE)
#define | GETPUT_FUNC_SET(MT) GET_FUNC_SET(MT) PUT_FUNC_SET(MT)
#define | GET_SIG_SET(MT) GET_FUNC_SET1(MT,= 0;,= 0;)
#define | PUT_SIG_SET(MT) PUT_FUNC_SET1(MT,= 0;,= 0;)
#define | GETPUT_SIG_SET(MT) GET_SIG_SET(MT) PUT_SIG_SET(MT)

## Typedefs

typedef istream &(* | __imanip_ )(istream &)
typedef ostream &(* | __omanip_ )(ostream &)

## Variables

ACE_END_VERSIONED_NAMESPACE_DECL typedef ios &(* | __manip_ )(ios &)

## Detailed Description

Id
  IOStream.h,v 4.70 2006/01/25 19:57:05 jwillemsen Exp

Author:
  James CE Johnson <jcej@lads.com>

  Jim Crossley <jim@lads.com>

## Define Documentation

#define GET_CODE

Value:

    {                      \
            if (ipfx (0))                                   \
            {                                               \
                    iostream::operator>> (v);               \
            }                                               \
            isfx ();                                        \
            return *this;                                   \
            }

#define GET_FUNC | ( | MT,
|  | DT |  | ) | GET_PROT(MT,DT,GET_CODE)

#define GET_FUNC_SET | ( | MT |  | ) | GET_FUNC_SET1(MT,GET_CODE,GET_MANIP_CODE)

#define GET_FUNC_SET0 | ( | MT,
|  | CODE,
|  | CODE2 |  | ) |

Value:

    GET_PROT(MT,short &,CODE) \
            GET_PROT(MT,u_short &,CODE) \
            GET_PROT(MT,int &,CODE) \
            GET_PROT(MT,u_int &,CODE) \
            GET_PROT(MT,long &,CODE) \
            GET_PROT(MT,u_long &,CODE) \
            GET_PROT(MT,float &,CODE) \
            GET_PROT(MT,double &,CODE) \
            GET_PROT(MT,char &,CODE) \
            GET_PROT(MT,u_char &,CODE) \
            GET_PROT(MT,char *,CODE) \
            GET_PROT(MT,u_char *,CODE) \
            inline virtual MT& operator>>(__omanip_ func) CODE2 \
            inline virtual MT& operator>>(__manip_ func)  CODE2

#define GET_FUNC_SET1 | ( | MT,
|  | CODE,
|  | CODE2 |  | ) |

Value:

    GET_PROT(MT,signed char &,CODE) \
              GET_PROT(MT,signed char *,CODE) \
              GET_FUNC_SET0(MT,CODE,CODE2)

#define GET_MANIP_CODE { if (ipfx ()) { (*func) (*this); } isfx (); return *this; }

#define GET_PROT | ( | MT,
|  | DT,
|  | CODE |  | ) | GET_SIG(MT,DT) CODE

#define GET_SIG | ( | MT,
|  | DT |  | ) | inline virtual MT& operator>> (DT v)

#define GET_SIG_SET | ( | MT |  | ) | GET_FUNC_SET1(MT,= 0;,= 0;)

#define GETPUT_FUNC_SET | ( | MT |  | ) | GET_FUNC_SET(MT) PUT_FUNC_SET(MT)

#define GETPUT_SIG_SET | ( | MT |  | ) | GET_SIG_SET(MT) PUT_SIG_SET(MT)

#define PUT_CODE

Value:

    {                      \
            if (opfx ())                                    \
            {                                               \
                    iostream::operator<< (v);               \
            }                                               \
            osfx ();                                        \
            return *this;                                   \
            }

#define PUT_FUNC | ( | MT,
|  | DT |  | ) | PUT_PROT(MT,DT,PUT_CODE)

#define PUT_FUNC_SET | ( | MT |  | ) | PUT_FUNC_SET1(MT,PUT_CODE,PUT_MANIP_CODE)

#define PUT_FUNC_SET0 | ( | MT,
|  | CODE,
|  | CODE2 |  | ) |

Value:

    PUT_PROT(MT,short,CODE) \
            PUT_PROT(MT,u_short,CODE) \
            PUT_PROT(MT,int,CODE) \
            PUT_PROT(MT,u_int,CODE) \
            PUT_PROT(MT,long,CODE) \
            PUT_PROT(MT,u_long,CODE) \
            PUT_PROT(MT,float,CODE) \
            PUT_PROT(MT,double,CODE) \
            PUT_PROT(MT,char,CODE) \
            PUT_PROT(MT,u_char,CODE) \
            PUT_PROT(MT,const char *,CODE) \
            PUT_PROT(MT,u_char *,CODE) \
            PUT_PROT(MT,void *,CODE) \
            inline virtual MT& operator<<(__omanip_ func) CODE2 \
            inline virtual MT& operator<<(__manip_ func)  CODE2

#define PUT_FUNC_SET1 | ( | MT,
|  | CODE,
|  | CODE2 |  | ) |

Value:

    PUT_FUNC(MT,signed char) \
              PUT_FUNC(MT,const signed char *) \
              PUT_FUNC_SET0(MT,CODE,CODE2)

#define PUT_MANIP_CODE { if (opfx ()) { (*func) (*this); } osfx (); return *this; }

#define PUT_PROT | ( | MT,
|  | DT,
|  | CODE |  | ) | PUT_SIG(MT,DT) CODE

#define PUT_SIG | ( | MT,
|  | DT |  | ) | inline virtual MT& operator<< (DT v)

#define PUT_SIG_SET | ( | MT |  | ) | PUT_FUNC_SET1(MT,= 0;,= 0;)

## Typedef Documentation

typedef istream&(* __imanip_)(istream &)

typedef ostream&(* __omanip_)(ostream &)

## Variable Documentation

ACE_END_VERSIONED_NAMESPACE_DECL typedef ios&(* __manip_)(ios &)