--- /dev/null
+// =========================================================================
+// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
+// =========================================================================
+
+#include <cpPlugins/Object.h>
+#include <cxxabi.h>
+#include <sstream>
+
+// -------------------------------------------------------------------------
+namespace cpPlugins
+{
+ const Object::TTimeStamp Object::ZeroTimeStamp =
+ Object::TTimeStamp( Object::TTimeRep::duration::zero( ) );
+} // end namespace
+
+// -------------------------------------------------------------------------
+const std::type_info& cpPlugins::Object::
+GetClassType( ) const
+{
+ return( typeid( *this ) );
+}
+
+// -------------------------------------------------------------------------
+std::string cpPlugins::Object::
+GetClassName( ) const
+{
+ int status = -4;
+ std::string name = this->GetClassType( ).name( );
+ std::unique_ptr< char, void(*)( void* ) > res
+ { abi::__cxa_demangle( name.c_str( ), NULL, NULL, &status ), std::free };
+ if( status == 0 )
+ name = res.get( );
+ else
+ name = "";
+ return( name );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Object::
+Print( std::ostream& o ) const
+{
+ o << this->GetClassName( ) << ": (" << this << ")" << std::endl;
+}
+
+// -------------------------------------------------------------------------
+const cpPlugins::Object::
+TTimeStamp& cpPlugins::Object::
+GetLastTimeStamp( ) const
+{
+ return( this->m_LastTimeStamp );
+}
+
+// -------------------------------------------------------------------------
+bool cpPlugins::Object::
+IsUpdated( const TTimeStamp& d ) const
+{
+ return(
+ this->m_LastTimeStamp < d &&
+ Self::ZeroTimeStamp < this->m_LastTimeStamp
+ );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Object::
+Modified( )
+{
+ this->m_LastTimeStamp = Self::ZeroTimeStamp;
+}
+
+// -------------------------------------------------------------------------
+cpPlugins::Object::
+Object( )
+{
+ this->Modified( );
+}
+
+// -------------------------------------------------------------------------
+cpPlugins::Object::
+~Object( )
+{
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Object::
+_Configure( )
+{
+ // Do nothing at this level
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Object::
+_SynchTime( )
+{
+ this->m_LastTimeStamp = TTimeRep::now( );
+}
+
+// eof - $RCSfile$