Changeset 477 for library/bdm/base/loggers.h
- Timestamp:
- 08/05/09 14:40:03 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/base/loggers.h
r425 r477 17 17 #include "user_info.h" 18 18 19 namespace bdm {19 namespace bdm { 20 20 using std::string; 21 21 … … 36 36 public: 37 37 //!Default constructor 38 memlog ( int maxlen0, string itf ="" ) : maxlen ( maxlen0 ),ind ( 0 ),vectors ( 0 ),itfilename(itf) {}38 memlog ( int maxlen0, string itf = "" ) : maxlen ( maxlen0 ), ind ( 0 ), vectors ( 0 ), itfilename ( itf ) {} 39 39 40 memlog() : ind ( 0 ),vectors ( 0 ) {}40 memlog() : ind ( 0 ), vectors ( 0 ) {} 41 41 42 42 //! Initialize storage 43 43 void init() { 44 int i; int n =entries.length(); 45 vectors.set_size ( n ); 46 for ( i=0;i<n;i++ ) {vectors(i).set_size (maxlen,entries(i)._dsize() );} 44 int i; 45 int n = entries.length(); 46 vectors.set_size ( n ); 47 for ( i = 0; i < n; i++ ) { 48 vectors ( i ).set_size ( maxlen, entries ( i )._dsize() ); 49 } 47 50 } 48 void step() {if ( ind<maxlen ) ind++; else it_error ( "memlog::ind is too high;" );} 51 void step() { 52 if ( ind < maxlen ) ind++; 53 else it_error ( "memlog::ind is too high;" ); 54 } 49 55 void logit ( int id, const vec &v ) { 50 it_assert_debug(id<vectors.length(),"Logger was not initialized, run init()."); 51 if(id>=0){ vectors ( id ).set_row ( ind,v );} 56 it_assert_debug ( id < vectors.length(), "Logger was not initialized, run init()." ); 57 if ( id >= 0 ) { 58 vectors ( id ).set_row ( ind, v ); 59 } 52 60 } 53 61 void logit ( int id, const double &d ) { 54 it_assert_debug(id<vectors.length(),"Logger was not initialized, run init()."); 55 it_assert_debug(vectors(id).cols()==1,"Vector expected"); 56 if(id>=0){ vectors ( id ) ( ind )=d;} 62 it_assert_debug ( id < vectors.length(), "Logger was not initialized, run init()." ); 63 it_assert_debug ( vectors ( id ).cols() == 1, "Vector expected" ); 64 if ( id >= 0 ) { 65 vectors ( id ) ( ind ) = d; 66 } 57 67 } 58 68 //! Save values into an itfile named after \c fname. 59 void itsave(const char* fname); 60 //! 61 void finalize() {if (itfilename.length()>0) itsave(itfilename.c_str());}; 69 void itsave ( const char* fname ); 70 //! 71 void finalize() { 72 if ( itfilename.length() > 0 ) itsave ( itfilename.c_str() ); 73 }; 62 74 63 75 64 /*! \brief UI for memlog 76 /*! \brief UI for memlog 65 77 66 78 TODO dat tam kam patri, a to celej blok … … 74 86 \endcode 75 87 */ 76 void from_setting ( const Setting &set );88 void from_setting ( const Setting &set ); 77 89 78 90 // TODO dodelat void to_setting( Setting &set ) const; 79 91 }; 80 92 81 UIREGISTER (memlog);93 UIREGISTER ( memlog ); 82 94 83 95 /*! … … 93 105 //!name of the directory 94 106 string dirname; 95 //! Automatically generated 107 //! Automatically generated 96 108 Array<string> scalarnames; 97 109 public: 98 /*!\brief Default constructor 110 /*!\brief Default constructor 99 111 @param dirname0 name of the directory in which to store the results 100 112 @param maxlen0 length of the memory buffers, when full the buffers will be dumped to HDD and returned to the beginning. */ … … 107 119 void step(); 108 120 void finalize(); 109 /*! \brief Write memory storage to disk. 121 /*! \brief Write memory storage to disk. 110 122 @param Len length of buffer to be written, if 0 the file is truncated at 0. 111 123 */ 112 124 void write_buffers ( int Len ); 113 125 114 /*! \brief UI for dirfilelog (Kst file format) 126 /*! \brief UI for dirfilelog (Kst file format) 115 127 \code 116 128 logger = { … … 121 133 \endcode 122 134 */ 123 void from_setting ( const Setting &set );135 void from_setting ( const Setting &set ); 124 136 125 137 // TODO dodelat void to_setting( Setting &set ) const; 126 138 }; 127 139 128 UIREGISTER (dirfilelog);140 UIREGISTER ( dirfilelog ); 129 141 130 142 };