/* ********************************************************************* * CBaseObj * ÆÄÀÏ : BaseObj.h * ±â´É : Caldron¿£Áø ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â ¸ðµç ObjectµéÀÇ Base Object Ŭ·¡½º ¼±¾ð * history : 2003.10.31 (yundi) ÀÛ¼º ********************************************************************** */ #pragma once #include "Caldron.h" namespace Caldron { namespace Base { class CBaseObj { public: CBaseObj( CBaseObj* pParentObj = NULL ); virtual ~CBaseObj(); bool LinkToParent( CBaseObj* pParentObj ); void Unlink(); bool IsRoot(); bool IsLeaf(); bool IsFirst(); bool IsLast(); CBaseObj* GetParent(); CBaseObj* GetFirstChild(); CBaseObj* GetPrevSibling(); CBaseObj* GetNextSibling(); private: void SetParent( CBaseObj* pObj ) { m_rpParent = pObj; } void SetFirstChild( CBaseObj* pObj ) { m_rpFirstChild = pObj; } void SetPrevSibling( CBaseObj* pObj ) { m_rpPrevSibling = pObj; } void SetNextSibling( CBaseObj* pObj ) { m_rpNextSibling = pObj; } CBaseObj* GetLastSibling(); void AddSiblingObj( CBaseObj* pObj ); void EstablishLinkageToParent( CBaseObj* pParent ); static int _GetTotalObjectCount() { return ms_nTotalObjectCount; } CBaseObj* m_rpParent; CBaseObj* m_rpFirstChild; CBaseObj* m_rpPrevSibling; CBaseObj* m_rpNextSibling; static int ms_nTotalObjectCount; }; } }