//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TWDictItem 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: 字典项TWDictItem 声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TWDICTITEM_H_ #define _TWDICTITEM_H_ #define RAPIDJSON_HAS_STDSTRING 1 #include "../../../dep_inc/rapidjson/document.h" #include "../../../dep_inc/rapidjson/encodings.h" #include "../../../dep_inc/rapidjson/stringbuffer.h" #include "../../../dep_inc/rapidjson/filereadstream.h" #include "../../../dep_inc/rapidjson/filewritestream.h" #include "../../../dep_inc/rapidjson/encodedstream.h" #include "../../../dep_inc/rapidjson/prettywriter.h" using namespace rapidjson; typedef GenericDocument > WDocument; typedef GenericValue > WValue; typedef const GenericValue > WCValue; typedef GenericArray Arr; typedef GenericArray CArr; typedef WValue::ConstMemberIterator MCIt; typedef WValue::MemberIterator MIt; typedef WValue::ConstValueIterator VCIt; typedef WValue::ValueIterator VIt; typedef GenericStringBuffer > WStringBuffer; typedef PrettyWriter> WPrettyWriter; typedef Writer> WWriter; extern WDocument::AllocatorType& getJsonAllocator(); //字典项 class GEOAPI TWDictItem { public: TWDictItem(const TCHAR* sName = NULL, const TCHAR* sDesc = NULL); virtual ~TWDictItem(); virtual int GetType() const; virtual void operator >> (CArchive &ar); virtual void operator << (CArchive &ar); virtual void CopyData(const TWDictItem &src); bool IsDict() const; bool IsValid(); bool operator == (const TWDictItem &item) const; bool operator != (const TWDictItem &item) const; bool operator > (const TWDictItem &item) const; bool operator < (const TWDictItem &item) const; virtual void saveToJson(WValue &v); virtual void loadByJson(const WValue &v); static bool json2File(LPCTSTR path, const WValue &v, bool pretty); static bool file2Json(LPCTSTR pszJson, WDocument &doc); public: //名称不能为空,区分大小写! CString m_sName; //项描述 CString m_sDesc; }; #endif