DataFileStream.h

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020                                                                         
00021 // $Revision: 1.1 $
00022 // $Date: 2006/08/03 23:28:34 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/handler/DataFileStream.h,v $
00024 
00025 #ifndef _DataFileStream
00026 #define _DataFileStream
00027 
00028 #include <OPS_Stream.h>
00029 
00030 #include <fstream>
00031 using std::ofstream;
00032 
00033 class DataFileStream : public OPS_Stream
00034 {
00035  public:
00036   DataFileStream(int indent=2);
00037   DataFileStream(const char *fileName, openMode mode = OVERWRITE, int indent=2);
00038   ~DataFileStream();
00039 
00040   int setFile(const char *fileName, openMode mode = OVERWRITE);
00041   int open(void);
00042   int close(void);
00043 
00044   int setPrecision(int precision);
00045   int setFloatField(floatField);
00046   int precision(int precision) {return 0;};
00047   int width(int width) {return 0;};
00048   const char *getFileName(void) {return fileName;}
00049 
00050   // xml stuff
00051   int tag(const char *);
00052   int tag(const char *, const char *);
00053   int endTag();
00054   int attr(const char *name, int value);
00055   int attr(const char *name, double value);
00056   int attr(const char *name, const char *value);
00057   int write(Vector &data);
00058 
00059   // regular stuff
00060   OPS_Stream& write(const char *s, int n);
00061   OPS_Stream& write(const unsigned char *s, int n);
00062   OPS_Stream& write(const signed char *s, int n);
00063   OPS_Stream& write(const void *s, int n);
00064   OPS_Stream& operator<<(char c);
00065   OPS_Stream& operator<<(unsigned char c);
00066   OPS_Stream& operator<<(signed char c);
00067   OPS_Stream& operator<<(const char *s);
00068   OPS_Stream& operator<<(const unsigned char *s);
00069   OPS_Stream& operator<<(const signed char *s);
00070   OPS_Stream& operator<<(const void *p);
00071   OPS_Stream& operator<<(int n);
00072   OPS_Stream& operator<<(unsigned int n);
00073   OPS_Stream& operator<<(long n);
00074   OPS_Stream& operator<<(unsigned long n);
00075   OPS_Stream& operator<<(short n);
00076   OPS_Stream& operator<<(unsigned short n);
00077   OPS_Stream& operator<<(bool b);
00078   OPS_Stream& operator<<(double n);
00079   OPS_Stream& operator<<(float n);
00080 
00081   int sendSelf(int commitTag, Channel &theChannel);  
00082   int recvSelf(int commitTag, Channel &theChannel, 
00083                FEM_ObjectBroker &theBroker);
00084 
00085  private:
00086   ofstream theFile;
00087   int fileOpen;
00088   openMode theOpenMode;
00089   char *fileName;
00090 
00091   void indent(void);
00092   int indentSize;
00093   int numIndent;
00094   char *indentString;
00095 };
00096 
00097 #endif

Generated on Mon Oct 23 15:05:12 2006 for OpenSees by doxygen 1.5.0