Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkOStreamWrapper.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkOStreamWrapper.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00026 #ifndef __vtkOStreamWrapper_h
00027 #define __vtkOStreamWrapper_h
00028 
00029 #ifndef __VTK_SYSTEM_INCLUDES__INSIDE
00030 Do_not_include_vtkOStreamWrapper_directly__vtkSystemIncludes_includes_it;
00031 #endif
00032 
00033 class vtkIndent;
00034 class vtkObjectBase;
00035 class vtkLargeInteger;
00036 class vtkSmartPointerBase;
00037 
00038 class VTK_COMMON_EXPORT vtkOStreamWrapper
00039 {
00040 public:
00042 
00044   vtkOStreamWrapper(ostream& os);
00045   vtkOStreamWrapper(vtkOStreamWrapper& r);
00047 
00048   virtual ~vtkOStreamWrapper();
00049 
00051   struct EndlType {};
00052   
00054 
00055   vtkOStreamWrapper& operator << (const EndlType&);
00056   vtkOStreamWrapper& operator << (const vtkIndent&);
00057   vtkOStreamWrapper& operator << (vtkObjectBase&);
00058   vtkOStreamWrapper& operator << (const vtkLargeInteger&);
00059   vtkOStreamWrapper& operator << (const vtkSmartPointerBase&);
00060   vtkOStreamWrapper& operator << (ostream&);
00061   vtkOStreamWrapper& operator << (const char*);
00062   vtkOStreamWrapper& operator << (void*);
00063   vtkOStreamWrapper& operator << (char);
00064   vtkOStreamWrapper& operator << (short);
00065   vtkOStreamWrapper& operator << (int);
00066   vtkOStreamWrapper& operator << (long);
00067   vtkOStreamWrapper& operator << (unsigned char);
00068   vtkOStreamWrapper& operator << (unsigned short);
00069   vtkOStreamWrapper& operator << (unsigned int);
00070   vtkOStreamWrapper& operator << (unsigned long);
00071   vtkOStreamWrapper& operator << (float);
00072   vtkOStreamWrapper& operator << (double);
00073 #if defined(VTK_TYPE_USE_LONG_LONG)
00074   vtkOStreamWrapper& operator << (long long);
00075   vtkOStreamWrapper& operator << (unsigned long long);
00077 #endif
00078 #if defined(VTK_TYPE_USE___INT64)
00079   vtkOStreamWrapper& operator << (__int64);
00080   vtkOStreamWrapper& operator << (unsigned __int64);
00081 #endif
00082 
00083   // Need to switch on bool type because this wrapper is supposed to
00084   // be as transparent as possible to user code.  This example should
00085   // not be used to justify using bool elsewhere in VTK.
00086 #ifdef VTK_COMPILER_HAS_BOOL
00087   vtkOStreamWrapper& operator << (bool);
00088 #endif
00089 
00090   // Work-around for IBM Visual Age bug in overload resolution.
00091 #if defined(__IBMCPP__)
00092   vtkOStreamWrapper& WriteInternal(const char*);
00093   vtkOStreamWrapper& WriteInternal(void*);
00094   template <typename T>
00095   vtkOStreamWrapper& operator << (T* p)
00096     {
00097     return this->WriteInternal(p);
00098     }
00099 #endif
00100 
00101   vtkOStreamWrapper& operator << (void (*)(void*));
00102   vtkOStreamWrapper& operator << (void* (*)(void*));
00103   vtkOStreamWrapper& operator << (int (*)(void*));
00104   vtkOStreamWrapper& operator << (int* (*)(void*));
00105   vtkOStreamWrapper& operator << (float* (*)(void*));
00106   vtkOStreamWrapper& operator << (const char* (*)(void*));
00107   vtkOStreamWrapper& operator << (void (*)(void*, int*));
00108   
00110   vtkOStreamWrapper& write(const char*, unsigned long);
00111   
00113   ostream& GetOStream();
00114 
00118   operator ostream&();
00119 
00121   operator int();
00122   
00124   void flush();
00125   
00128   static void UseEndl(const EndlType&) {}
00129 protected:
00130   // Reference to the real ostream.
00131   ostream& ostr;
00132 private:
00133   vtkOStreamWrapper& operator=(const vtkOStreamWrapper& r); // Not Implemented.
00134 };
00135 
00136 #endif

Generated on Mon Jan 21 23:07:17 2008 for VTK by  doxygen 1.4.3-20050530