Val.h
上传用户:lds876
上传日期:2013-05-25
资源大小:567k
文件大小:1k
源码类别:

P2P编程

开发平台:

Visual C++

  1. // Val.h: interface for the CVal class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_VAL_H__ED1B6BD1_F9EC_4596_B932_9CDB2427D1E7__INCLUDED_)
  5. #define AFX_VAL_H__ED1B6BD1_F9EC_4596_B932_9CDB2427D1E7__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. //*
  10. #define VALMAP map<string, CVal*>
  11. #define PVALMAP VALMAP*
  12. #define VALLIST vector<CVal*>
  13. #define PVALLIST VALLIST*
  14. //*/
  15. enum eValType{VT_LONG, VT_PSTR, VT_PMAP, VT_PLIST};
  16. class CVal  
  17. {
  18. public:
  19. CVal(long lSrc);
  20. CVal(string strSrc);
  21. CVal(char* pstrSrc, long lstrLenSrc);
  22. CVal(PVALMAP pmapSrc);
  23. CVal(PVALLIST plistSrc);
  24. virtual ~CVal();
  25. operator char*()const;
  26. // operator long()const;
  27. long size();
  28. CVal& operator = (CVal& v);
  29. // operator string()const;
  30. CVal* operator [](string strKey);
  31. CVal* operator [](int inx);
  32. static void test();
  33. long lstrLen;
  34. unsigned long lVal;
  35. char* pstrVal;
  36. PVALMAP pmapVal;
  37. PVALLIST plistVal;
  38. eValType vt;
  39. private:
  40. void setBuf(char* pstrSrc, long lstrLenSrc);
  41. };
  42. #endif // !defined(AFX_VAL_H__ED1B6BD1_F9EC_4596_B932_9CDB2427D1E7__INCLUDED_)