go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
xoutrow.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __xoutrow_h
00016 #define __xoutrow_h
00017 
00018 #include "xoutbase.h"
00019 #include "xoutcell.h"
00020 #include <sstream>
00021 
00022 namespace xoutlibrary
00023 {
00024 using namespace std;
00025 
00026 
00039 template<class charT, class traits = char_traits<charT> >
00040 class xoutrow : public xoutbase<charT, traits>
00041 {
00042 public:
00043 
00044   typedef xoutrow                           Self;
00045   typedef xoutbase<charT, traits>           Superclass;
00046 
00048   typedef typename Superclass::traits_type    traits_type;
00049   typedef typename Superclass::char_type      char_type;
00050   typedef typename Superclass::int_type       int_type;
00051   typedef typename Superclass::pos_type       pos_type;
00052   typedef typename Superclass::off_type       off_type;
00053   typedef typename Superclass::ostream_type   ostream_type;
00054   typedef typename Superclass::ios_type       ios_type;
00055 
00056   typedef typename Superclass::CStreamMapType         CStreamMapType;
00057   typedef typename Superclass::XStreamMapType         XStreamMapType;
00058   typedef typename Superclass::CStreamMapIteratorType CStreamMapIteratorType;
00059   typedef typename Superclass::XStreamMapIteratorType XStreamMapIteratorType;
00060   typedef typename Superclass::CStreamMapEntryType    CStreamMapEntryType;
00061   typedef typename Superclass::XStreamMapEntryType    XStreamMapEntryType;
00062 
00064   typedef xoutcell<charT, traits> XOutCellType;
00065 
00067   xoutrow();
00068 
00070   virtual ~xoutrow();
00071 
00075   virtual void WriteBufferedData( void );
00076 
00081   virtual void WriteHeaders( void );
00082 
00084   virtual int AddTargetCell( const char * name );
00085 
00087   virtual int RemoveTargetCell( const char * name );
00088 
00092   virtual void SetTargetCells( const XStreamMapType & cellmap );
00093 
00098   virtual int AddOutput( const char * name, ostream_type * output );
00099   virtual int AddOutput( const char * name, Superclass * output );
00100   virtual int RemoveOutput( const char * name );
00101 
00102   virtual void SetOutputs( const CStreamMapType & outputmap );
00103   virtual void SetOutputs( const XStreamMapType & outputmap );
00104 
00105 protected:
00106 
00111   virtual Superclass & SelectXCell( const char * name );
00112 
00113   XStreamMapType m_CellMap;
00114 
00115 }; // end class xoutrow
00116 
00117 
00118 } // end namespace xoutlibrary
00119 
00120 #include "xoutrow.hxx"
00121 
00122 #endif // end #ifndef __xoutrow_h
00123 


Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo