- Main Page
- Classes
- Files
- Related Pages

# state_file.h

    00001 //
    00002 // state_file.h
    00003 //
    00004 // Copyright (C) 1996 Limit Point Systems, Inc.
    00005 //
    00006 // Author: Curtis Janssen <cljanss@limitpt.com>
    00007 // Maintainer: LPS
    00008 //
    00009 // This file is part of the SC Toolkit.
    00010 //
    00011 // The SC Toolkit is free software; you can redistribute it and/or modify
    00012 // it under the terms of the GNU Library General Public License as published by
    00013 // the Free Software Foundation; either version 2, or (at your option)
    00014 // any later version.
    00015 //
    00016 // The SC Toolkit is distributed in the hope that it will be useful,
    00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00019 // GNU Library General Public License for more details.
    00020 //
    00021 // You should have received a copy of the GNU Library General Public License
    00022 // along with the SC Toolkit; see the file COPYING.LIB.  If not, write to
    00023 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
    00024 //
    00025 // The U.S. Government is granted a limited license as per AL 91-7.
    00026 //
    00027
    00028 #ifndef _util_state_state_file_h
    00029 #define _util_state_state_file_h
    00030
    00031 #ifdef __GNUC__
    00032 #pragma interface
    00033 #endif
    00034
    00035 #include <stdlib.h>
    00036 #include <iostream>
    00037 #include <iomanip>
    00038
    00039 #include <util/state/state.h>
    00040 #include <util/state/statein.h>
    00041 #include <util/state/stateout.h>
    00042
    00043 namespace sc {
    00044
    00047 class StateOutFile: public StateOut {
    00048   private:
    00049     // do not allow copy constructor or assignment
    00050     StateOutFile(const StateOutFile&);
    00051     void operator=(const StateOutFile&);
    00052   protected:
    00053     int opened_;
    00054     std::streambuf *buf_;
    00055   public:
    00057     StateOutFile();
    00059     StateOutFile(std::ostream& s);
    00061     StateOutFile(const char *name);
    00062
    00063     ~StateOutFile();
    00064
    00066     virtual int open(const char *name);
    00068     virtual void flush();
    00070     virtual void close();
    00071   };
    00072
    00075 class StateInFile: public StateIn {
    00076   private:
    00077     // do not allow copy constructor or assignment
    00078     StateInFile(const StateInFile&);
    00079     void operator=(const StateInFile&);
    00080   protected:
    00081     int opened_;
    00082     std::streambuf *buf_;
    00083   public:
    00085     StateInFile();
    00087     StateInFile(std::istream& s);
    00089     StateInFile(const char *name);
    00090
    00091     ~StateInFile();
    00092
    00094     virtual int open(const char *name);
    00096     virtual void close();
    00097   };
    00098
    00099 }
    00100
    00101 #endif
    00102
    00103 // Local Variables:
    00104 // mode: c++
    00105 // c-file-style: "CLJ"
    00106 // End: