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
|
/*****************************************************************************/
/* Stream Class Library Copyright (c) 1999-2000 Sakai Hiroaki. */
/* All Rights Reserved. */
/*===========================================================================*/
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2, or (at your option) */
/* any later version. */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program; see the file COPYING. If not, write to */
/* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/*****************************************************************************/
#ifndef _STREAMP_H_INCLUDED_
#define _STREAMP_H_INCLUDED_
/*****************************************************************************/
/* */
/*****************************************************************************/
#include "Stream.h"
/*****************************************************************************/
/* إåեΥ롼(ץ饤١Ȥʤ) */
/*****************************************************************************/
/* None */
/*****************************************************************************/
/* (˸ʤ) */
/*****************************************************************************/
/*===========================================================================*/
/* ɤ߹߸ΤΥ */
/*===========================================================================*/
typedef enum {
STREAM_TYPE_NONE, /* ɤ߹߸̵ */
STREAM_TYPE_FILE_POINTER, /* եݥɤ߹ */
STREAM_TYPE_CHARACTERS /* ʸ(char * )ɤ߹ */
} StreamType;
/*===========================================================================*/
/* ɤ߹߸ */
/*===========================================================================*/
typedef union {
void * dummy; /* ɤ߹߸̵ */
FILE * file_pointer; /* եݥɤ߹ */
char * characters; /* ʸ(char * )ɤ߹ */
} StreamObject;
/*===========================================================================*/
/* unget ѥХåե */
/*===========================================================================*/
typedef struct _UngetBuffer {
char character;
struct _UngetBuffer * next;
} UngetBuffer;
/*===========================================================================*/
/* Stream 饹 */
/*===========================================================================*/
typedef struct _Stream {
UngetBuffer * unget_buffer; /* Хåե(ʸǤ unget Ǥ) */
int end_flag; /* λΥե饰(ɤ߹Τ̵Ȥ) */
CreateStreamFrom from;
/* Υ֥ȤΥ(ե̾ʸʤ) */
StreamType type; /* ɤ߹߸ΤΥ(ե롤String ʤ) */
StreamObject object; /* ɤ߹߸(ե롤String ʤ) */
} _Stream;
/*****************************************************************************/
/* ޤ */
/*****************************************************************************/
#endif
/*****************************************************************************/
/* End of File. */
/*****************************************************************************/
|