Object


public:

virtual ~Object( )

const std::string& GetName( ) const

void SetName( const std::string& Name)

const std::string& GetDocumentation( ) const

void SetDocumentation( const std::string& Doc)

virtual boost::posix_time::ptime GetLatestUpdateTime( ) const

This gets the latest update time for this object and any children.

const boost::posix_time::ptime& GetLastUpdatedTime( ) const

const boost::posix_time::ptime& GetDocUpdatedTime( ) const

virtual void AttachToTreeView( const ObjectFactory& ObjectFactory, ClassTree* pTree, const wxTreeItemId& NodeId) =0

virtual NotebookViewPtr AttachToNotebook( const ObjectFactory& ObjectFactory, TreeView* pTreeView, wxNotebook* pNotebook) =0

virtual std::string ConvertToXml( ) =0

virtual std::string ConvertToHeader( ) const =0

virtual std::string ConvertToHTML( ) const

virtual std::string GetDisplayString( ) const


protected:

Object( )

void UpdateTimeStamp( )

call this one to set the m_LastUpdatedTime to now. This should be called by any children who update anything.

void RestoreTimestamps( const std::string& LastUpdated, const std::string& DocUpdated)

This is a helper function. All of the children end up reading 2 strings for the 2 time stamps when loading from XML. Then they have to set them if they're not empty. It's the same 10 lines of code repeated for every child, so I made it a helper

void SetLastUpdatedTime( const boost::posix_time::ptime& NewTime)

void SetDocUpdatedTime( const boost::posix_time::ptime& NewTime)

virtual void ReadFromXml( XMLReader& Reader) =0

static const std::string XML_CODE_OBJECT

static const std::string XML_CODE_TYPE

static const std::string XML_CODE_NAME

static const std::string XML_CODE_DOCUMENTATION

static const std::string XML_CODE_LAST_UPDATED_TIME

static const std::string XML_CODE_DOC_UPDATED_TIME

static const std::string XML_CODE_TYPE_VARIABLE

static const std::string XML_CODE_TYPE_CLASS

static const std::string XML_CODE_TYPE_GROUP

static const std::string XML_CODE_TYPE_METHOD

static const std::string XML_CODE_TYPE_OTHER


private:

friends


std::string m_Name

std::string m_Documentation

boost::posix_time::ptime m_LastUpdatedTime

boost::posix_time::ptime m_DocUpdatedTime