00001 // This is mul/mbl/mbl_data_collector_base.cxx 00002 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00003 #pragma implementation 00004 #endif 00005 //: 00006 // \file 00007 // \author Tim Cootes 00008 // \brief Non-templated base class for mbl_data_collector_base 00009 00010 #include "mbl_data_collector_base.h" 00011 #include <vsl/vsl_indent.h> 00012 #include <vsl/vsl_binary_loader.h> 00013 00014 //======================================================================= 00015 00016 00017 mbl_data_collector_base::mbl_data_collector_base() 00018 { 00019 } 00020 00021 //======================================================================= 00022 00023 mbl_data_collector_base::~mbl_data_collector_base() 00024 { 00025 } 00026 00027 //======================================================================= 00028 00029 void vsl_add_to_binary_loader(const mbl_data_collector_base& b) 00030 { 00031 vsl_binary_loader<mbl_data_collector_base>::instance().add(b); 00032 } 00033 00034 //======================================================================= 00035 00036 vcl_string mbl_data_collector_base::is_a() const 00037 { 00038 return vcl_string("mbl_data_collector_base"); 00039 } 00040 00041 //======================================================================= 00042 00043 bool mbl_data_collector_base::is_class(vcl_string const& s) const 00044 { 00045 return s==mbl_data_collector_base::is_a(); 00046 } 00047 00048 //======================================================================= 00049 00050 void vsl_b_write(vsl_b_ostream& bfs, const mbl_data_collector_base& b) 00051 { 00052 b.b_write(bfs); 00053 } 00054 00055 //======================================================================= 00056 00057 void vsl_b_read(vsl_b_istream& bfs, mbl_data_collector_base& b) 00058 { 00059 b.b_read(bfs); 00060 } 00061 00062 //======================================================================= 00063 00064 vcl_ostream& operator<<(vcl_ostream& os,const mbl_data_collector_base& b) 00065 { 00066 os << b.is_a() << ": "; 00067 vsl_indent_inc(os); 00068 b.print_summary(os); 00069 vsl_indent_dec(os); 00070 return os; 00071 } 00072 00073 //======================================================================= 00074 00075 vcl_ostream& operator<<(vcl_ostream& os,const mbl_data_collector_base* b) 00076 { 00077 if (b) 00078 return os << *b; 00079 else 00080 return os << "No mbl_data_collector_base defined."; 00081 }