eis/inc/base/TestNode.h

84 lines
2.3 KiB
C
Raw Normal View History

/*********************************************************************
*
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: TestNode.h //TODO<44><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Shanghai Baosight Software Co., Ltd.
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD>//TODO
* <EFBFBD><EFBFBD>//TODO
*
* <EFBFBD><EFBFBD><EFBFBD>ʷ
* 0.5 2010-06-15 <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CppTest<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD>
* 0.2 2010-03-31 <EFBFBD>ʢ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
* 0.1 2010-03-26 <EFBFBD>ʢ <EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* %USER%
*********************************************************************/
#ifndef _TestNode_H
#define _TestNode_H
#include <iostream>
#include <string.h>
#include <string>
#include <list>
using namespace std;
namespace baosight
{
class TestNode;
typedef list<TestNode*> TestNodeList;
/*********************************************************************
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: TestNode
* <EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Shanghai Baosight Software Co., Ltd.
* <EFBFBD><EFBFBD> ְ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Խڵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýڵ<EFBFBD><EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>ֻ<EFBFBD>ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD>ʾ
* <EFBFBD><EFBFBD><EFBFBD>ʷ
* 1.0 2010-07-25 tonny //TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
*
*********************************************************************/
class TestNode
{
public:
TestNode(){}
TestNode(string name,TestNode* father = NULL,char m_keyName = '0'):m_str(name),m_key(m_keyName),p_father(father){}
string getName(){ return m_str ;}
TestNode* getFather(){ return p_father ;}
void setFather(TestNode* father){ p_father = father;}
TestNode* getChild(string name);
TestNode* getChild(char key);
list<TestNode*>& getAllChild(){return m_childNodes;}
virtual int getChildNum() { return m_childNodes.size(); }
virtual char getKey() { return m_key;}
virtual string getMenu();
void setKey(char c ) { m_key = c;}
virtual int addChild(TestNode* pnode);
virtual int test(void* data = 0) { cout<<"hi,I am "<<m_str<<endl;return 0;}
virtual int clearChild(TestNode* child){ return 0;}
virtual int clearAllChild();
virtual ~TestNode() ;
TestNode* existNode(TestNode* existnode, TestNode* father = NULL);
TestNode* existNodeInTree(TestNode* node);
private:
char genKey(int num);
protected:
TestNodeList m_childNodes;
TestNode* p_father;
string m_str;
char m_key;
};
typedef TestNode FirstLevelNode;
typedef TestNode SecondLevelNode;
typedef TestNode ThirdLevelNode;
};
#endif