#ifndef __ZCPPMAIN__ZMAINHEAD_H__ #define __ZCPPMAIN__ZMAINHEAD_H__ #include "ZCppMain/ZMainHead.H" namespace ZNsMain { template class ZtCLinkList; template class ZtCLink : public TTypBase { public : template friend class ZtCLinkList; public : typedef ZtCLink TypeThis ; typedef TTypBase TypeBase ; typedef TChild TypeChild; protected: ZtCLink* mp_NextLink; ZtCLink* mp_PrevLink; protected: ZtCLink* GetNextLinkPtr(){return mp_NextLink;} ZtCLink* GetPrevLinkPtr(){return mp_PrevLink;} void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink) { AP_PrevLink->mp_NextLink=AP_NextLink; AP_NextLink->mp_PrevLink=AP_PrevLink; }/* void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink)*/ void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink) { AP_HeadLink->mp_PrevLink=AP_TailLink; AP_TailLink->mp_NextLink=AP_HeadLink; }/* void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink)*/ /*protected:*/ public : ZtCLink() { mp_NextLink=0; mp_PrevLink=0; }/* ZtCLink()*/ ZtCLink(const ZtCLink& rhs) { mp_NextLink=0; mp_PrevLink=0; *(TypeBase*)(this) = rhs ; }/* ZtCLink(const ZtCLink& rhs)*/ ZtCLink& operator=(const ZtCLink& rhs) { static_cast(*this) = static_cast( rhs ) ; return *this; }/* ZtCLink& operator=(const ZtCLink& rhs)*/ public : };/* template class ZtCLink : public TTypBase */ template class ZtCLink : public TTypBase { public : template friend class ZtCLinkList; public : typedef ZtCLink TypeThis ; typedef TTypBase /*+++++++++++++*/ TypeBase ; typedef ZCEmpty /*+++++++++++++*/ TypeChild; protected: ZtCLink* mp_NextLink; ZtCLink* mp_PrevLink; public : ZtCLink* GetNextLinkPtr(){return mp_NextLink;} ZtCLink* GetPrevLinkPtr(){return mp_PrevLink;} void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink) { AP_PrevLink->mp_NextLink=AP_NextLink; AP_NextLink->mp_PrevLink=AP_PrevLink; }/* void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink)*/ void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink) { AP_HeadLink->mp_PrevLink=AP_TailLink; AP_TailLink->mp_NextLink=AP_HeadLink; }/* void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink)*/ /*protected:*/ public : ZtCLink() { mp_NextLink=0; mp_PrevLink=0; }/* ZtCLink()*/ ZtCLink(const TypeThis& rhs) { mp_NextLink=0; mp_PrevLink=0; *(TypeBase*)(this) = rhs ; }/* ZtCLink(const TypeThis& rhs)*/ TypeThis& operator=(const TypeThis& rhs) { static_cast(*this) = static_cast( rhs ) ; return *this; }/* TypeThis& operator=(const TypeThis& rhs)*/ public : };/* template class ZtCLink : public TTypBase*/ template class ZtCLink { public : template friend class ZtCLinkList; public : typedef ZtCLink TypeThis ; typedef ZCEmpty /*++++++++++++*/ TypeBase ; typedef TChild /*++++++++++++*/ TypeChild; protected: ZtCLink* mp_NextLink; ZtCLink* mp_PrevLink; protected: ZtCLink* GetNextLinkPtr(){return mp_NextLink;} ZtCLink* GetPrevLinkPtr(){return mp_PrevLink;} void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink) { AP_PrevLink->mp_NextLink=AP_NextLink; AP_NextLink->mp_PrevLink=AP_PrevLink; }/* void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink)*/ void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink) { AP_HeadLink->mp_PrevLink=AP_TailLink; AP_TailLink->mp_NextLink=AP_HeadLink; }/* void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink)*/ /*protected:*/ public : ZtCLink() { mp_NextLink=0; mp_PrevLink=0; }/* ZtCLink()*/ ZtCLink(const TypeThis& rhs) { mp_NextLink=0; mp_PrevLink=0; }/* ZtCLink(const TypeThis& rhs)*/ TypeThis& operator=(const TypeThis& rhs) { return *this; }/* TypeThis& operator=(const TypeThis& rhs)*/ public : };/* template class ZtCLink*/ template<> class ZtCLink { public : template friend class ZtCLinkList; public : typedef ZtCLink TypeThis ; typedef ZCEmpty /*++++++++++++*/ TypeBase ; typedef ZCEmpty /*++++++++++++*/ TypeChild; protected: ZtCLink* mp_NextLink; ZtCLink* mp_PrevLink; protected: ZtCLink* GetNextLinkPtr(){return mp_NextLink;} ZtCLink* GetPrevLinkPtr(){return mp_PrevLink;} void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink) { AP_PrevLink->mp_NextLink=AP_NextLink; AP_NextLink->mp_PrevLink=AP_PrevLink; }/* void JoinLink(ZtCLink* AP_PrevLink, ZtCLink* AP_NextLink)*/ void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink) { AP_HeadLink->mp_PrevLink=AP_TailLink; AP_TailLink->mp_NextLink=AP_HeadLink; }/* void MakeRing(ZtCLink* AP_HeadLink, ZtCLink* AP_TailLink)*/ /*protected:*/ public : ZtCLink() { mp_NextLink=0; mp_PrevLink=0; }/* ZtCLink()*/ ZtCLink(const TypeThis& rhs) { mp_NextLink=0; mp_PrevLink=0; }/* ZtCLink(const TypeThis& rhs)*/ TypeThis& operator=(const TypeThis& rhs) { return *this; }/* TypeThis& operator=(const TypeThis& rhs)*/ public : };/* template<> class ZtCLink*/ template class ZtCLinkList { public : typedef TCLink ZCLink ; typedef TCLink TypeData; typedef TTypSize TypeSize; private: ZCLink* mp_HeadLink; ZCLink* mp_TailLink; TypeSize ml_LinkSize; private: public : ZtCLinkList() { mp_HeadLink=0; mp_TailLink=0; ml_LinkSize=0; }/* ZtCLinkList()*/ // is adding codes public : };/* template class ZtCLinkList*/ }/* namespace ZNsMain*/ #endif //__ZCPPMAIN__ZMAINHEAD_H__