StandardStream.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.3 $
00022 // $Date: 2006/08/03 23:24:56 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/handler/StandardStream.h,v $
00024 
00025 #ifndef _StandardStream
00026 #define _StandardStream
00027 
00028 #include <OPS_Stream.h>
00029 
00030 #include <fstream>
00031 using std::ofstream;
00032 
00033 class StandardStream : public OPS_Stream
00034 {
00035  public:
00036   StandardStream(int indentSize=2);
00037   ~StandardStream();
00038 
00039   int setFile(const char *fileName, openMode mode = OVERWRITE);
00040   int setPrecision(int precision);
00041   int setFloatField(floatField);
00042   int precision(int precision) {return 0;};
00043   int width(int width) {return 0;};
00044 
00045   // xml stuff
00046   int tag(const char *);
00047   int tag(const char *, const char *);
00048   int endTag();
00049   int attr(const char *name, int value);
00050   int attr(const char *name, double value);
00051   int attr(const char *name, const char *value);
00052   int write(Vector &data);
00053 
00054 
00055   OPS_Stream& write(const char *s, int n);
00056   OPS_Stream& write(const unsigned char *s, int n);
00057   OPS_Stream& write(const signed char *s, int n);
00058   OPS_Stream& write(const void *s, int n);
00059   OPS_Stream& operator<<(char c);
00060   OPS_Stream& operator<<(unsigned char c);
00061   OPS_Stream& operator<<(signed char c);
00062   OPS_Stream& operator<<(const char *s);
00063   OPS_Stream& operator<<(const unsigned char *s);
00064   OPS_Stream& operator<<(const signed char *s);
00065   OPS_Stream& operator<<(const void *p);
00066   OPS_Stream& operator<<(int n);
00067   OPS_Stream& operator<<(unsigned int n);
00068   OPS_Stream& operator<<(long n);
00069   OPS_Stream& operator<<(unsigned long n);
00070   OPS_Stream& operator<<(short n);
00071   OPS_Stream& operator<<(unsigned short n);
00072   OPS_Stream& operator<<(bool b);
00073   OPS_Stream& operator<<(double n);
00074   OPS_Stream& operator<<(float n);
00075 
00076   int sendSelf(int commitTag, Channel &theChannel);  
00077   int recvSelf(int commitTag, Channel &theChannel, 
00078                FEM_ObjectBroker &theBroker);
00079 
00080  private:
00081   ofstream theFile;
00082   int fileOpen;
00083 
00084   void indent(void);
00085   int indentSize;
00086   int numIndent;
00087   char *indentString;
00088 };
00089 
00090 #endif

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