tape_ODBC/TapeStream.h

00001 /*  TapeStream.h
00002  *  Abstract header for tape streams.
00003  *
00004  *  author: Matt Hauer, matthew.hauer@pnl.gov, 5/30/07 - ***
00005  */
00006 
00007 #ifndef _CTAPESTREAM_H
00008 #define _CTAPESTREAM_H
00009 
00010 #include <string.h>
00011 #include <stdio.h>
00012 #include <stdlib.h>
00013 
00014 //#include "tape.h"
00015 typedef enum {TSO_INIT, TSO_OPEN, TSO_DONE, OS_ERROR} TAPEOBJSTATUS;
00016 
00017 //  abstract class
00018 class TapeStream{
00019 public:
00020     TapeStream();
00021     virtual ~TapeStream();
00022 
00023     virtual char *ReadLine(){return 0;}
00024     virtual char *ReadLine(char *, unsigned int)=0;
00025     virtual int ReadShape(char *, float *)=0;
00026     virtual int Write(char*)=0;
00027     virtual int Write(char*, char*)=0;
00028     //int Write(int, OBJECT *);
00029     virtual void Close()=0;
00030     virtual int Rewind()=0;
00031     void Reset();
00032 
00033     virtual void PrintHeader(char *, char *, char *, char *, char *, char *, long, long)=0;
00034 
00035 //  TAPESTATUS GetStreamState(){return state;}
00036     int GetStreamState(){return (int)state;}
00037     char *GetFileMode(){return filemode;}
00038     void SetFileMode(char *);
00039 protected:
00040     int     state;
00041     //TAPESTATUS    state;
00042     char    filemode[3];
00043 };
00044 
00045 class tapepair{
00046 public:
00047     tapepair(){tape=0; name=0;}
00048     tapepair(TapeStream *t, void *n){tape=t; name=n;}
00049     ~tapepair(){delete tape;}
00050     TapeStream *tape;
00051     void *name;
00052 };  //  glorified struct
00053 
00054 #endif

GridLAB-DTM Version 1.0
An open-source project initiated by the US Department of Energy