contrib/mul/mbl/mbl_data_collector_base.cxx
Go to the documentation of this file.
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 }