Browse Source

Z991239-361 #comment 清除模块

陈良瑜80374463 5 years ago
parent
commit
b7eb2b14e0
4 changed files with 0 additions and 721 deletions
  1. 0 189
      spbase/SpVirtualDevice.cpp
  2. 0 48
      spbase/SpVirtualDevice.h
  3. 0 435
      spbase/SpXmlPersistStream.cpp
  4. 0 49
      spbase/SpXmlPersistStream.h

+ 0 - 189
spbase/SpVirtualDevice.cpp

@@ -1,189 +0,0 @@
-#include "stdafx.h"
-#include "SpBase.h"
-#include "SpBaseInternal.h"
-#include "SpVirtualDevice.h"
-
-#include "sp_dbg.h"
-#include "sp_sal.h"
-#include "sp_env.h"
-
-typedef ErrorCodeEnum (__stdcall * __pfn_Initialize)(int argc, char *argv[]);
-typedef void (__stdcall *__pfn_Termination)();
-typedef ErrorCodeEnum (__stdcall * __pfn_SelfTest)();
-typedef ErrorCodeEnum (__stdcall * __pfn_Reset)();
-typedef void (__stdcall *__pfn_GetVersion)(int *major, int *minor);
-typedef const char *(__stdcall *__pfn_GetAuthor)();
-typedef const char *(__stdcall *__pfn_GetCompany)();
-typedef const char *(__stdcall *__pfn_GetType)();
-typedef ErrorCodeEnum (__stdcall *__pfn_Command)(int cmd, const char *inParam, int nInParam, char *outParam, int nOutParam);
-
-struct DeviceAbstractObject : public IDeviceAbstractObject
-{
-	DeviceAbstractObject() : _inst(NULL)
-	{
-	}
-
-	virtual ErrorCodeEnum Initialize(int argc, char *argv[])
-	{
-		return (*_Initialize)(argc, argv);
-	}
-	
-	virtual void Termination()
-	{
-		(*_Termination)();
-	}
-	
-	virtual ErrorCodeEnum SelfTest()
-	{
-		return (*_SelfTest)();
-	}
-
-	virtual ErrorCodeEnum Reset()
-	{
-		return (*_Reset)();
-	}
-
-	virtual void GetVersion(int *major, int *minor)
-	{
-		(*_GetVersion)(major, minor);
-	}
-
-	virtual const char *GetAuthor()
-	{
-		return (*_GetAuthor)();
-	}
-
-	virtual const char *GetCompany()
-	{
-		return (*_GetCompany)();
-	}
-
-	virtual const char *GetType()
-	{
-		return (*_GetType)();
-	}
-
-	virtual ErrorCodeEnum Command(int cmd, const char *inParam, int nInParam, char *outParam, int nOutParam)
-	{
-		return (*_Command)(cmd, inParam, nInParam, outParam, nOutParam);
-	}
-
-	ErrorCodeEnum Load(const char *pszDevDll)
-	{
-		ErrorCodeEnum Error;
-		char tmp[MAX_PATH];
-		sp_env_t *env = sp_get_env();
-
-		_snprintf(tmp, MAX_PATH, "%s\\%s.dll", env->dir->dev_path, pszDevDll);
-		tmp[MAX_PATH-1] = 0;
-
-		sp_sal_info_t sal_info;
-		if (sp_sal_verify_file(tmp, &sal_info) != 0) {
-			sp_dbg_warn("verify file %s failed!", tmp);
-			return Error_FailVerify;
-		}
-
-		_inst = ::LoadLibraryA(tmp);
-
-		if (!_inst) {
-			DWORD dwError = ::GetLastError();
-
-			sp_dbg_warn("load library failed, OSError = %d", dwError);
-
-			if (dwError == ERROR_NOT_FOUND)
-				Error = Error_NotExist;
-			else 
-				Error = Error_Unexpect;
-		} else {
-			Error = GetAllProc();
-		}
-
-		if (Error) {
-			UnLoad();
-		}
-
-		return Error;
-	}
-
-	void UnLoad()
-	{
-		if (_inst) {
-			::FreeLibrary(_inst);
-			_inst = NULL;
-		}
-	}
-
-private:
-
-	ErrorCodeEnum GetAllProc()
-	{
-		ErrorCodeEnum Error = Error_Succeed;
-
-#define GET_API_FUNC(member, name)	\
-	if (Error == Error_Succeed) {	\
-		member = (__pfn##member)GetProc(name);	\
-		if (!member) {	\
-			sp_dbg_warn("load function %s failed!", name);	\
-			Error = Error_Unexpect;	\
-		}	\
-	}
-
-		GET_API_FUNC(_Initialize, "dal_initialize");
-		GET_API_FUNC(_Termination, "dal_terminate");
-		GET_API_FUNC(_SelfTest, "dal_self_test");
-		GET_API_FUNC(_Reset, "dal_reset");
-		GET_API_FUNC(_GetVersion, "dal_get_version");
-		GET_API_FUNC(_GetAuthor, "dal_get_author");
-		GET_API_FUNC(_GetCompany, "dal_get_company");
-		GET_API_FUNC(_GetType, "dal_get_type");
-		GET_API_FUNC(_Command, "dal_command");
-
-		return Error;
-	}
-
-	void* GetProc(const char *proc)
-	{
-		return GetProcAddress(_inst, proc);
-	}
-
-private:
-	__pfn_Initialize _Initialize;
-	__pfn_Termination _Termination;
-	__pfn_SelfTest _SelfTest;
-	__pfn_Reset _Reset;
-	__pfn_GetVersion _GetVersion;
-	__pfn_GetAuthor _GetAuthor;
-	__pfn_GetCompany _GetCompany;
-	__pfn_GetType _GetType;
-	__pfn_Command _Command;
-
-	HINSTANCE _inst;
-};
-
-
-SPBASE_API ErrorCodeEnum SpLoadDeviceAbstractObject(const char *pszDevDll, IDeviceAbstractObject **ppDevObj)
-{
-	DeviceAbstractObject *pDevObj = new DeviceAbstractObject();
-	ErrorCodeEnum Error;
-
-	if (!pszDevDll || !ppDevObj)
-		return Error_Param;
-
-	Error = pDevObj->Load(pszDevDll);
-
-	if (Error != Error_Succeed) {
-		delete pDevObj;
-	}
-
-	return Error;
-}
-
-SPBASE_API void SpUnloadDeviceAbstractObject(IDeviceAbstractObject *pDevObj)
-{
-	if (pDevObj) {
-		DeviceAbstractObject *obj = dynamic_cast<DeviceAbstractObject*>(pDevObj);
-		obj->UnLoad();
-		delete obj;
-	}
-}
-

+ 0 - 48
spbase/SpVirtualDevice.h

@@ -1,48 +0,0 @@
-#ifndef __SP_VIRTUAL_DEVICE_H
-#define __SP_VIRTUAL_DEVICE_H
-
-#pragma once
-
-#include "SpBase.h"
-
-// for virtual device layer
-
-struct IDeviceAbstractObject
-{
-	virtual ErrorCodeEnum Initialize(int argc, char *argv[]) = 0;
-	virtual void Termination() = 0;
-	virtual ErrorCodeEnum SelfTest() = 0;
-	virtual ErrorCodeEnum Reset() = 0;
-	virtual void GetVersion(int *major, int *minor) = 0;
-	virtual const char *GetAuthor() = 0;
-	virtual const char *GetCompany() = 0;
-	virtual const char *GetType() = 0;
-	virtual ErrorCodeEnum Command(int cmd, const char *inParam, int nInParam, char *outParam, int nOutParam) = 0;
-};
-
-/**
- * a wrapper for dynamic load dev api
- * @param pszDevDll the dll name which you want load, for example, you want to load "dev\dev_prn_base.dll"
- *		then pszDevDll == "dev_prn_base"
- * note: 
- *	1) dont forget do unload via SpUnloadDeviceAbstractObject
- *	2) dont load dev dll directly, because we do signature checking here
- */
-SPBASE_API ErrorCodeEnum SpLoadDeviceAbstractObject(const char *pszDevDll, IDeviceAbstractObject **ppDevObj);
-SPBASE_API void SpUnloadDeviceAbstractObject(IDeviceAbstractObject *pDevObj);
-
-
-
-
-class SpVirtualDevice 
-{
-public:
-};
-
-
-
-
-
-
-
-#endif // __SP_VIRTUAL_DEVICE_H

+ 0 - 435
spbase/SpXmlPersistStream.cpp

@@ -1,435 +0,0 @@
-#include "stdafx.h"
-#include "SpBase.h"
-#include "SpXmlPersistStream.h"
-#include "scew.h"
-#include "base64.h"
-
-/*
-<intrinsic type="int" key="" value=""/>
-
-<object key="">
-</object>
-
-<array type="" key="">
-	<intrinsic value=""/>
-</array>
-
-*/
-
-template<class T>
-static const char *GetIntrinsicTypeName() {_ASSERT(FALSE);return NULL;}
-template<> const char *GetIntrinsicTypeName<ULONGLONG>() {return "ULONGLONG";}
-template<> const char *GetIntrinsicTypeName<LONGLONG>() {return "LONGLONG";}
-template<> const char *GetIntrinsicTypeName<DWORD>() {return "DWORD";}
-template<> const char *GetIntrinsicTypeName<WORD>() {return "WORD";}
-template<> const char *GetIntrinsicTypeName<BYTE>() {return "BYTE";}
-template<> const char *GetIntrinsicTypeName<CHAR>() {return "CHAR";}
-template<> const char *GetIntrinsicTypeName<FLOAT>() {return "FLOAT";}
-template<> const char *GetIntrinsicTypeName<DOUBLE>() {return "DOUBLE";}
-template<> const char *GetIntrinsicTypeName<SHORT>() {return "SHORT";}
-template<> const char *GetIntrinsicTypeName<const char*>() {return "STRING";}
-template<> const char *GetIntrinsicTypeName<CSimpleStringA>() {return "STRING";}
-
-template<class T>
-static scew_element * AddIntrinsicNode(scew_element *pParentNode, const char *pszKey, const T t)
-{
-	char tmp[32];
-	int len;
-	const char *pTypeName = GetIntrinsicTypeName<T>();
-
-	len = base64_encode_len(sizeof(t));
-	_ASSERT(len <= sizeof(tmp));
-	base64_encode(tmp, (char*)&t, sizeof(t));
-
-	scew_element *node = scew_element_create("intrinsic");
-	if (_stricmp(scew_element_name(pParentNode), "object") == 0) {
-		scew_element_add_attribute_pair(node, "type", pTypeName);
-		scew_element_add_attribute_pair(node, "key", pszKey);
-	}
-	scew_element_set_contents(node, tmp);
-	scew_element_add_element(pParentNode, node);
-
-	return node;
-}
-template<>
-#ifdef _WIN32
-static
-#endif //_WIN32
- scew_element * AddIntrinsicNode(scew_element *pParentNode, const char *pszKey, const char *t)
-{
-	char tmp[32];
-	int len;
-	const char *pTypeName = GetIntrinsicTypeName<const char *>();
-	int slen = t ? strlen(t) : 0;
-
-	len = base64_encode_len(slen);
-	_ASSERT(len <= sizeof(tmp));
-	base64_encode(tmp, (char*)t, slen);
-
-	scew_element *node = scew_element_create("intrinsic");
-	if (_stricmp(scew_element_name(pParentNode), "object") == 0) {
-		scew_element_add_attribute_pair(node, "type", pTypeName);
-		scew_element_add_attribute_pair(node, "key", pszKey);
-	}
-	scew_element_set_contents(node, len ? tmp : "");
-	scew_element_add_element(pParentNode, node);
-
-	return node;
-}
-
-template<>
-#ifdef _WIN32
-static
-#endif //_WIN32
-scew_element * AddIntrinsicNode(scew_element *pParentNode, const char *pszKey, const CSimpleStringA &t)
-{
-	const char *tmp = t.GetData();
-	return AddIntrinsicNode(pParentNode, pszKey, tmp);
-}
-
-
-
-static scew_element *AddObjectNode(scew_element *pParentNode, const char *pszKey) 
-{
-	scew_element *node = scew_element_create("object");
-	scew_element_add_attribute_pair(node, "key", pszKey);
-	scew_element_add_element(pParentNode, node);
-	return node;
-}
-
-template<class T>
-static scew_element *AddIntrinsicArrayNode(scew_element *pParentNode, const char *pszKey, const CAutoArray<T> &arrObjects)
-{
-	const char *pTypeName = GetIntrinsicTypeName<T>();
-
-	scew_element *node = scew_element_create("array");
-	scew_element_add_attribute_pair(node, "type", pTypeName);
-	scew_element_add_attribute_pair(node, "key", pszKey);
-	for (int i = 0; i < arrObjects.GetCount(); ++i) {
-		AddIntrinsicNode(node, pszKey, arrObjects[i]);
-	}
-
-	scew_element_add_element(pParentNode, node);
-	return node;
-}
-
-static scew_element *find_element_by_key(scew_element *pParentNode, const char *pszKey)
-{
-	scew_list *it = scew_element_children(pParentNode);
-	while (it) {
-		scew_element *elem = (scew_element*)scew_list_data(it);
-		scew_attribute *attr = scew_element_attribute_by_name(elem, "key");
-		if (attr) {
-			if (_stricmp(scew_attribute_name(attr), pszKey) == 0)
-				return elem;
-		}
-		it = scew_list_next(it);
-	}
-	return NULL;
-}
-
-template<class T>
-static ErrorCodeEnum ReadValue(scew_element *node, T &v)
-{
-	char *data = (char*)scew_element_contents(node);
-	if (data) {
-		int len = base64_decode_len(data);
-		if (len == sizeof(T)) {
-			base64_decode((char*)&v, data);
-			return Error_Succeed;
-		}
-	}
-	return Error_Unexpect;	
-}
-
-template<>
-#ifdef _WIN32
-static
-#endif //_WIN32
-ErrorCodeEnum ReadValue(scew_element *node, CSimpleStringA &v)
-{
-	char *data = (char*)scew_element_contents(node);
-	if (data) {
-		int len = base64_decode_len(data);
-		CSimpleStringA strTmp('\0', len);
-		base64_decode((char*)&strTmp[0], data);
-		v = strTmp;
-		return Error_Succeed;
-	}
-	return Error_Unexpect;	
-}
-
-static ErrorCodeEnum CheckType(scew_element *node, const char *pTypeName)
-{
-	if (_stricmp(scew_element_name(scew_element_parent(node)), "object") == 0) {
-		scew_attribute *attr = scew_element_attribute_by_name(node, "type");
-		if (attr) {
-			if (_stricmp(scew_attribute_name(attr), pTypeName) == 0)
-				return Error_Succeed;
-		}
-	}
-	return Error_Unexpect;
-}
-
-template<class T>
-static ErrorCodeEnum ReadIntrinsicNode(scew_element *pParentNode, const char *pszKey, T &v)
-{
-	scew_element *node = find_element_by_key(pParentNode, pszKey);
-	if (node) {
-		ErrorCodeEnum Error = CheckType(node, GetIntrinsicTypeName<T>());
-		if (Error)
-			return Error;
-		return ReadValue(node, v);
-	}
-	return Error_NotExist;
-}
-
-template<class T>
-static ErrorCodeEnum ReadIntrinsicArrayNode(scew_element *pParentNode, const char *pszKey, CAutoArray<T> &v)
-{
-	scew_element *node = find_element_by_key(pParentNode, pszKey);
-	if (node) {
-		ErrorCodeEnum Error = CheckType(node, GetIntrinsicTypeName<T>());
-		if (Error)
-			return Error;
-
-		int cnt = 0;
-		scew_list *it = scew_element_children(node);
-		while (it) {
-			cnt++;
-			it = scew_list_next(it);
-		}
-		v.Init(cnt);
-		
-		int i = 0;
-		it = scew_element_children(node);
-		while (it && !Error) {
-			scew_element *child = (scew_element *)scew_list_data(it);
-			Error = ReadValue(child, v[i++]);
-
-			it = scew_list_next(it);
-		}
-
-		return Error;
-	}
-	return Error_NotExist;
-}
-
-SpXmlPersistStream::SpXmlPersistStream( int iMode, scew_element *pNode )
-: m_iMode(iMode), m_pNode(pNode)
-{
-
-}
-
-SpXmlPersistStream::~SpXmlPersistStream()
-{
-	//
-}
-
-
-
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const char *pszValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, pszValue);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const ULONGLONG nValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, nValue);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const DWORD nValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, nValue);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const WORD nValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, nValue);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const BYTE nValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, nValue);
-	return Error_Succeed;
-}
-
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const FLOAT nValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, nValue);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const DOUBLE nValue)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicNode(m_pNode, pszKey, nValue);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Set(const char *pszKey,const IEntityPersistObject *pValue)
-{
-	_ASSERT(pszKey);
-	_ASSERT(pValue);
-	scew_element *child = AddObjectNode(m_pNode, pszKey);
-	CSmartPointer<IEntityPersistStreamWrite> pStream;
-	pStream.Attach(new SpXmlPersistStream(SpXmlPersistStream::Write, child));
-	ErrorCodeEnum Error = pValue->OnWrite(pStream);
-	return Error;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<CSimpleStringA> &strValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, strValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<ULONGLONG> &nValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, nValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<DWORD> &nValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, nValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<WORD> &nValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, nValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<BYTE> &nValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, nValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<FLOAT> &nValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, nValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::SetArray(const char *pszKey,const CAutoArray<DOUBLE> &nValues)
-{
-	_ASSERT(pszKey);
-	AddIntrinsicArrayNode(m_pNode, pszKey, nValues);
-	return Error_Succeed;
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,CSimpleStringA &strValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, strValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,ULONGLONG &nValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, nValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,DWORD &nValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, nValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,WORD &nValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, nValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,BYTE &nValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, nValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,FLOAT &nValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, nValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,DOUBLE &nValue)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicNode(m_pNode, pszKey, nValue);
-}
-
-ErrorCodeEnum SpXmlPersistStream::Get(const char *pszKey,IEntityPersistObject *pValue)
-{
-	_ASSERT(pszKey);
-	scew_element *child = find_element_by_key(m_pNode, pszKey);
-	CSmartPointer<IEntityPersistStreamRead> pStream;
-	pStream.Attach(new SpXmlPersistStream(SpXmlPersistStream::Read, child));
-	ErrorCodeEnum Error = pValue->OnRead(pStream);
-	return Error;
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<CSimpleStringA> &strValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, strValues);
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<ULONGLONG> &nValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, nValues);
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<DWORD> &nValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, nValues);
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<WORD> &nValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, nValues);
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<BYTE> &nValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, nValues);
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<FLOAT> &nValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, nValues);
-}
-
-ErrorCodeEnum SpXmlPersistStream::GetArray(const char *pszKey,CAutoArray<DOUBLE> &nValues)
-{
-	_ASSERT(pszKey);
-	return ReadIntrinsicArrayNode(m_pNode, pszKey, nValues);
-}
-

+ 0 - 49
spbase/SpXmlPersistStream.h

@@ -1,49 +0,0 @@
-#pragma once
-
-typedef struct scew_element scew_element;
-
-class SpXmlPersistStream : public IEntityPersistStreamWrite, public IEntityPersistStreamRead
-{
-public:
-	enum eMode {Read, Write};
-
-	SpXmlPersistStream(int iMode, scew_element *pNode);
-	virtual ~SpXmlPersistStream();
-
-	virtual ErrorCodeEnum Get(const char *pszKey,CSimpleStringA &strValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,ULONGLONG &nValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,DWORD &nValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,WORD &nValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,BYTE &nValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,FLOAT &nValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,DOUBLE &nValue);
-	virtual ErrorCodeEnum Get(const char *pszKey,IEntityPersistObject *pValue);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<CSimpleStringA> &strValues);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<ULONGLONG> &nValues);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<DWORD> &nValues);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<WORD> &nValues);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<BYTE> &nValues);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<FLOAT> &nValues);
-	virtual ErrorCodeEnum GetArray(const char *pszKey,CAutoArray<DOUBLE> &nValues);
-
-	virtual ErrorCodeEnum Set(const char *pszKey,const char *pszValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const ULONGLONG nValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const DWORD nValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const WORD nValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const BYTE nValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const FLOAT nValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const DOUBLE nValue);
-	virtual ErrorCodeEnum Set(const char *pszKey,const IEntityPersistObject *pValue);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<CSimpleStringA> &strValues);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<ULONGLONG> &nValues);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<DWORD> &nValues);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<WORD> &nValues);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<BYTE> &nValues);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<FLOAT> &nValues);
-	virtual ErrorCodeEnum SetArray(const char *pszKey,const CAutoArray<DOUBLE> &nValues);
-
-private:
-	int m_iMode;
-	scew_element *m_pNode;
-};
-