Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/iostream

    r4040425 r6ba0659  
    77// iostream --
    88//
    9 // Author           : Peter A. Buhr
     9// Author           : Richard C. Bilson
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar  2 18:05:27 2016
    13 // Update Count     : 85
     12// Last Modified On : Wed Feb 17 14:04:24 2016
     13// Update Count     : 32
    1414//
    1515
    16 #ifndef __IOSTREAM_H__
    17 #define __IOSTREAM_H__
     16#ifndef IOSTREAM_H
     17#define IOSTREAM_H
    1818
    1919#include "iterator"
    2020
    21 trait ostream( dtype ostype ) {
    22         _Bool sepPrt( ostype * );
    23         void sepOn( ostype * );
    24         void sepOff( ostype * );
    25         void sepSet( ostype *, const char * );
    26         const char * sepGet( ostype * );
    27         void sepDisable( ostype * );
    28         void sepEnable( ostype * );
     21typedef unsigned long streamsize_type;
     22
     23context ostream( dtype ostype ) {
    2924        int fail( ostype * );
    3025        int flush( ostype * );
    31         void open( ostype * os, const char * name, const char * mode );
    32         void close( ostype * os );
    33         ostype * write( ostype *, const char *, unsigned long int );
    34         int prtfmt( ostype *, const char fmt[], ... );
     26        ostype * write( ostype *, const char *, streamsize_type );
    3527};
    36 
    37 trait writeable( otype T ) {
     28context writeable( type T ) {
    3829        forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, T );
    3930};
     
    4233
    4334forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, char );
    44 
    45 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, short int );
    46 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, unsigned short int );
    4735forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, int );
    4836forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, unsigned int );
     
    5139forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, unsigned long int );
    5240forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, unsigned long long int );
    53 
    5441forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, float ); // FIX ME: should not be required
    5542forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, double );
    5643forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, long double );
    57 
    5844forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, float _Complex );
    5945forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, double _Complex );
    6046forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, long double _Complex );
    61 
    6247forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const char * );
    6348forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const void * );
    6449
    65 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, ostype * (*)( ostype * ) );
     50forall( dtype ostype, dtype retostype | ostream( ostype ) | ostream( retostype ) ) retostype * ?|?( ostype *os, retostype * (* manip)(ostype*) );
    6651forall( dtype ostype | ostream( ostype ) ) ostype * endl( ostype * );
    67 forall( dtype ostype | ostream( ostype ) ) ostype * sepOn( ostype * );
    68 forall( dtype ostype | ostream( ostype ) ) ostype * sepOff( ostype * );
    6952
    7053// writes the range [begin, end) to the given stream
    71 forall( otype elt_type | writeable( elt_type ), otype iterator_type | iterator( iterator_type, elt_type ), dtype os_type | ostream( os_type ) )
     54forall( type elt_type | writeable( elt_type ), type iterator_type | iterator( iterator_type, elt_type ), dtype os_type | ostream( os_type ) )
    7255void write( iterator_type begin, iterator_type end, os_type *os );
    7356
    74 forall( otype elt_type | writeable( elt_type ), otype iterator_type | iterator( iterator_type, elt_type ), dtype os_type | ostream( os_type ) )
     57forall( type elt_type | writeable( elt_type ), type iterator_type | iterator( iterator_type, elt_type ), dtype os_type | ostream( os_type ) )
    7558void write_reverse( iterator_type begin, iterator_type end, os_type *os );
    7659
    7760//---------------------------------------
    7861
    79 trait istream( dtype istype ) {
     62context istream( dtype istype ) {
    8063        int fail( istype * );
    8164        int eof( istype * );
    82         void open( istype * is, const char * name, const char * mode );
    83         void close( istype * is );
    84         istype * read( istype *, char *, unsigned long int );
     65        istype * get( istype *, int * );
     66        istype * read( istype *, char *, streamsize_type );
    8567        istype * ungetc( istype *, char );
    86         int scanfmt( istype *, const char fmt[], ... );
    8768};
    8869
    89 trait readable( otype T ) {
     70context readable( type T ) {
    9071        forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, T );
    9172};
    9273
    93 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, char * );
     74forall( dtype istype | istream( istype ) )
     75istype * ?|?( istype *, char * );
    9476
    95 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, short int * );
    96 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, unsigned short int * );
    97 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, int * );
    98 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, unsigned int * );
    99 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, long int * );
    100 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, long long int * );
    101 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, unsigned long int * );
    102 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, unsigned long long int * );
     77forall( dtype istype | istream( istype ) )
     78istype * ?|?( istype *, int * );
    10379
    104 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, float * );
    105 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, double * );
    106 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, long double * );
    107 
    108 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, float _Complex * );
    109 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, double _Complex * );
    110 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, long double _Complex * );
    111 
    112 struct _Istream_str1 { char * s; };
    113 _Istream_str1 str( char * );
    114 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, _Istream_str1 );
    115 
    116 struct _Istream_str2 { char * s; int size; };
    117 _Istream_str2 str( char *, int size );
    118 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, _Istream_str2 );
    119 
    120 #endif // __IOSTREAM_H__
     80#endif // IOSTREAM_H
    12181
    12282// Local Variables: //
Note: See TracChangeset for help on using the changeset viewer.