replace C-style typedefs with C++ structs for easier forward declarations of XNode
This commit is contained in:
+46
-46
@@ -220,12 +220,12 @@ void _SetString( char* psz, char* end, CString* ps, bool trim = false, int escap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_tagXMLNode::~_tagXMLNode()
|
XNode::~XNode()
|
||||||
{
|
{
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _tagXMLNode::Close()
|
void XNode::Close()
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ void _tagXMLNode::Close()
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
char* _tagXMLNode::LoadAttributes( const char* pszAttrs , LPPARSEINFO pi /*= &piDefault*/)
|
char* XNode::LoadAttributes( const char* pszAttrs , LPPARSEINFO pi /*= &piDefault*/)
|
||||||
{
|
{
|
||||||
char* xml = (char*)pszAttrs;
|
char* xml = (char*)pszAttrs;
|
||||||
|
|
||||||
@@ -359,7 +359,7 @@ char* _tagXMLNode::LoadAttributes( const char* pszAttrs , LPPARSEINFO pi /*= &pi
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
char* _tagXMLNode::Load( const char* pszXml, LPPARSEINFO pi /*= &piDefault*/ )
|
char* XNode::Load( const char* pszXml, LPPARSEINFO pi /*= &piDefault*/ )
|
||||||
{
|
{
|
||||||
// Close it
|
// Close it
|
||||||
Close();
|
Close();
|
||||||
@@ -552,7 +552,7 @@ char* _tagXMLNode::Load( const char* pszXml, LPPARSEINFO pi /*= &piDefault*/ )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
CString _tagXMLAttr::GetXML( LPDISP_OPT opt /*= &optDefault*/ )
|
CString XAttr::GetXML( LPDISP_OPT opt /*= &optDefault*/ )
|
||||||
{
|
{
|
||||||
std::ostringstream os;
|
std::ostringstream os;
|
||||||
//os << (const char*)name << "='" << (const char*)value << "' ";
|
//os << (const char*)name << "='" << (const char*)value << "' ";
|
||||||
@@ -570,7 +570,7 @@ CString _tagXMLAttr::GetXML( LPDISP_OPT opt /*= &optDefault*/ )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
CString _tagXMLNode::GetXML( LPDISP_OPT opt /*= &optDefault*/ )
|
CString XNode::GetXML( LPDISP_OPT opt /*= &optDefault*/ )
|
||||||
{
|
{
|
||||||
std::ostringstream os;
|
std::ostringstream os;
|
||||||
|
|
||||||
@@ -651,7 +651,7 @@ CString _tagXMLNode::GetXML( LPDISP_OPT opt /*= &optDefault*/ )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
const LPXAttr _tagXMLNode::GetAttr( const char* attrname ) const
|
const LPXAttr XNode::GetAttr( const char* attrname ) const
|
||||||
{
|
{
|
||||||
for( unsigned i = 0 ; i < attrs.size(); i++ )
|
for( unsigned i = 0 ; i < attrs.size(); i++ )
|
||||||
{
|
{
|
||||||
@@ -665,7 +665,7 @@ const LPXAttr _tagXMLNode::GetAttr( const char* attrname ) const
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXAttr _tagXMLNode::GetAttr( const char* attrname )
|
LPXAttr XNode::GetAttr( const char* attrname )
|
||||||
{
|
{
|
||||||
for( unsigned i = 0 ; i < attrs.size(); i++ )
|
for( unsigned i = 0 ; i < attrs.size(); i++ )
|
||||||
{
|
{
|
||||||
@@ -688,7 +688,7 @@ LPXAttr _tagXMLNode::GetAttr( const char* attrname )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
XAttrs _tagXMLNode::GetAttrs( const char* name )
|
XAttrs XNode::GetAttrs( const char* name )
|
||||||
{
|
{
|
||||||
XAttrs attrs;
|
XAttrs attrs;
|
||||||
for( unsigned i = 0 ; i < attrs.size(); i++ )
|
for( unsigned i = 0 ; i < attrs.size(); i++ )
|
||||||
@@ -712,13 +712,13 @@ XAttrs _tagXMLNode::GetAttrs( const char* name )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
const char* _tagXMLNode::GetAttrValue( const char* attrname )
|
const char* XNode::GetAttrValue( const char* attrname )
|
||||||
{
|
{
|
||||||
LPXAttr attr = GetAttr( attrname );
|
LPXAttr attr = GetAttr( attrname );
|
||||||
return attr ? (const char*)attr->value : NULL;
|
return attr ? (const char*)attr->value : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
XNodes _tagXMLNode::GetChilds()
|
XNodes XNode::GetChilds()
|
||||||
{
|
{
|
||||||
return childs;
|
return childs;
|
||||||
}
|
}
|
||||||
@@ -732,7 +732,7 @@ XNodes _tagXMLNode::GetChilds()
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
XNodes _tagXMLNode::GetChilds( const char* name )
|
XNodes XNode::GetChilds( const char* name )
|
||||||
{
|
{
|
||||||
XNodes nodes;
|
XNodes nodes;
|
||||||
for( unsigned i = 0 ; i < childs.size(); i++ )
|
for( unsigned i = 0 ; i < childs.size(); i++ )
|
||||||
@@ -756,7 +756,7 @@ XNodes _tagXMLNode::GetChilds( const char* name )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXNode _tagXMLNode::GetChild( int i )
|
LPXNode XNode::GetChild( int i )
|
||||||
{
|
{
|
||||||
if( i >= 0 && i < (int)childs.size() )
|
if( i >= 0 && i < (int)childs.size() )
|
||||||
return childs[i];
|
return childs[i];
|
||||||
@@ -772,7 +772,7 @@ LPXNode _tagXMLNode::GetChild( int i )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-12-26
|
// bro 2002-12-26
|
||||||
//========================================================
|
//========================================================
|
||||||
int _tagXMLNode::GetChildCount()
|
int XNode::GetChildCount()
|
||||||
{
|
{
|
||||||
return childs.size();
|
return childs.size();
|
||||||
}
|
}
|
||||||
@@ -786,7 +786,7 @@ int _tagXMLNode::GetChildCount()
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXNode _tagXMLNode::GetChild( const char* name )
|
LPXNode XNode::GetChild( const char* name )
|
||||||
{
|
{
|
||||||
for( unsigned i = 0 ; i < childs.size(); i++ )
|
for( unsigned i = 0 ; i < childs.size(); i++ )
|
||||||
{
|
{
|
||||||
@@ -800,7 +800,7 @@ LPXNode _tagXMLNode::GetChild( const char* name )
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const LPXNode _tagXMLNode::GetChild( const char* name ) const
|
const LPXNode XNode::GetChild( const char* name ) const
|
||||||
{
|
{
|
||||||
for( unsigned i = 0 ; i < childs.size(); i++ )
|
for( unsigned i = 0 ; i < childs.size(); i++ )
|
||||||
{
|
{
|
||||||
@@ -823,19 +823,19 @@ const LPXNode _tagXMLNode::GetChild( const char* name ) const
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
const char* _tagXMLNode::GetChildValue( const char* name )
|
const char* XNode::GetChildValue( const char* name )
|
||||||
{
|
{
|
||||||
LPXNode node = GetChild( name );
|
LPXNode node = GetChild( name );
|
||||||
return (node != NULL)? (const char*)node->value : NULL;
|
return (node != NULL)? (const char*)node->value : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXAttr _tagXMLNode::GetChildAttr( const char* name, const char* attrname )
|
LPXAttr XNode::GetChildAttr( const char* name, const char* attrname )
|
||||||
{
|
{
|
||||||
LPXNode node = GetChild(name);
|
LPXNode node = GetChild(name);
|
||||||
return node ? node->GetAttr(attrname) : NULL;
|
return node ? node->GetAttr(attrname) : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* _tagXMLNode::GetChildAttrValue( const char* name, const char* attrname )
|
const char* XNode::GetChildAttrValue( const char* name, const char* attrname )
|
||||||
{
|
{
|
||||||
LPXAttr attr = GetChildAttr( name, attrname );
|
LPXAttr attr = GetChildAttr( name, attrname );
|
||||||
return attr ? (const char*)attr->value : NULL;
|
return attr ? (const char*)attr->value : NULL;
|
||||||
@@ -851,7 +851,7 @@ const char* _tagXMLNode::GetChildAttrValue( const char* name, const char* attrna
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
XNodes::iterator _tagXMLNode::GetChildIterator( LPXNode node )
|
XNodes::iterator XNode::GetChildIterator( LPXNode node )
|
||||||
{
|
{
|
||||||
XNodes::iterator it = childs.begin();
|
XNodes::iterator it = childs.begin();
|
||||||
for( ; it != childs.end() ; ++(it) )
|
for( ; it != childs.end() ; ++(it) )
|
||||||
@@ -871,17 +871,17 @@ XNodes::iterator _tagXMLNode::GetChildIterator( LPXNode node )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXNode _tagXMLNode::AppendChild( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
LPXNode XNode::AppendChild( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
||||||
{
|
{
|
||||||
return AppendChild( CreateNode( name, value ) );
|
return AppendChild( CreateNode( name, value ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXNode _tagXMLNode::AppendChild( const char* name /*= NULL*/, float value /*= NULL*/ )
|
LPXNode XNode::AppendChild( const char* name /*= NULL*/, float value /*= NULL*/ )
|
||||||
{
|
{
|
||||||
return AppendChild( name, ssprintf("%f",value) );
|
return AppendChild( name, ssprintf("%f",value) );
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXNode _tagXMLNode::AppendChild( const char* name /*= NULL*/, int value /*= NULL*/ )
|
LPXNode XNode::AppendChild( const char* name /*= NULL*/, int value /*= NULL*/ )
|
||||||
{
|
{
|
||||||
return AppendChild( name, ssprintf("%d",value) );
|
return AppendChild( name, ssprintf("%d",value) );
|
||||||
}
|
}
|
||||||
@@ -895,7 +895,7 @@ LPXNode _tagXMLNode::AppendChild( const char* name /*= NULL*/, int value /*= NUL
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXNode _tagXMLNode::AppendChild( LPXNode node )
|
LPXNode XNode::AppendChild( LPXNode node )
|
||||||
{
|
{
|
||||||
node->parent = this;
|
node->parent = this;
|
||||||
childs.push_back( node );
|
childs.push_back( node );
|
||||||
@@ -911,7 +911,7 @@ LPXNode _tagXMLNode::AppendChild( LPXNode node )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
bool _tagXMLNode::RemoveChild( LPXNode node )
|
bool XNode::RemoveChild( LPXNode node )
|
||||||
{
|
{
|
||||||
XNodes::iterator it = GetChildIterator( node );
|
XNodes::iterator it = GetChildIterator( node );
|
||||||
if( it != childs.end() )
|
if( it != childs.end() )
|
||||||
@@ -932,7 +932,7 @@ bool _tagXMLNode::RemoveChild( LPXNode node )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXAttr _tagXMLNode::GetAttr( int i )
|
LPXAttr XNode::GetAttr( int i )
|
||||||
{
|
{
|
||||||
if( i >= 0 && i < (int)attrs.size() )
|
if( i >= 0 && i < (int)attrs.size() )
|
||||||
return attrs[i];
|
return attrs[i];
|
||||||
@@ -948,7 +948,7 @@ LPXAttr _tagXMLNode::GetAttr( int i )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
XAttrs::iterator _tagXMLNode::GetAttrIterator( LPXAttr attr )
|
XAttrs::iterator XNode::GetAttrIterator( LPXAttr attr )
|
||||||
{
|
{
|
||||||
XAttrs::iterator it = attrs.begin();
|
XAttrs::iterator it = attrs.begin();
|
||||||
for( ; it != attrs.end() ; ++(it) )
|
for( ; it != attrs.end() ; ++(it) )
|
||||||
@@ -968,7 +968,7 @@ XAttrs::iterator _tagXMLNode::GetAttrIterator( LPXAttr attr )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXAttr _tagXMLNode::AppendAttr( LPXAttr attr )
|
LPXAttr XNode::AppendAttr( LPXAttr attr )
|
||||||
{
|
{
|
||||||
attr->parent = this;
|
attr->parent = this;
|
||||||
attrs.push_back( attr );
|
attrs.push_back( attr );
|
||||||
@@ -984,7 +984,7 @@ LPXAttr _tagXMLNode::AppendAttr( LPXAttr attr )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
bool _tagXMLNode::RemoveAttr( LPXAttr attr )
|
bool XNode::RemoveAttr( LPXAttr attr )
|
||||||
{
|
{
|
||||||
XAttrs::iterator it = GetAttrIterator( attr );
|
XAttrs::iterator it = GetAttrIterator( attr );
|
||||||
if( it != attrs.end() )
|
if( it != attrs.end() )
|
||||||
@@ -1005,7 +1005,7 @@ bool _tagXMLNode::RemoveAttr( LPXAttr attr )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXNode _tagXMLNode::CreateNode( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
LPXNode XNode::CreateNode( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
||||||
{
|
{
|
||||||
LPXNode node = new XNode;
|
LPXNode node = new XNode;
|
||||||
node->name = name;
|
node->name = name;
|
||||||
@@ -1022,7 +1022,7 @@ LPXNode _tagXMLNode::CreateNode( const char* name /*= NULL*/, const char* value
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXAttr _tagXMLNode::CreateAttr( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
LPXAttr XNode::CreateAttr( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
||||||
{
|
{
|
||||||
LPXAttr attr = new XAttr;
|
LPXAttr attr = new XAttr;
|
||||||
attr->name = name;
|
attr->name = name;
|
||||||
@@ -1039,13 +1039,13 @@ LPXAttr _tagXMLNode::CreateAttr( const char* name /*= NULL*/, const char* value
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXAttr _tagXMLNode::AppendAttr( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
LPXAttr XNode::AppendAttr( const char* name /*= NULL*/, const char* value /*= NULL*/ )
|
||||||
{
|
{
|
||||||
return AppendAttr( CreateAttr( name, value ) );
|
return AppendAttr( CreateAttr( name, value ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXAttr _tagXMLNode::AppendAttr( const char* name, float value ){ return AppendAttr(name,ssprintf("%f",value)); }
|
LPXAttr XNode::AppendAttr( const char* name, float value ){ return AppendAttr(name,ssprintf("%f",value)); }
|
||||||
LPXAttr _tagXMLNode::AppendAttr( const char* name, int value ) { return AppendAttr(name,ssprintf("%d",value)); }
|
LPXAttr XNode::AppendAttr( const char* name, int value ) { return AppendAttr(name,ssprintf("%d",value)); }
|
||||||
|
|
||||||
//========================================================
|
//========================================================
|
||||||
// Name : DetachChild
|
// Name : DetachChild
|
||||||
@@ -1056,7 +1056,7 @@ LPXAttr _tagXMLNode::AppendAttr( const char* name, int value ) { return AppendAt
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXNode _tagXMLNode::DetachChild( LPXNode node )
|
LPXNode XNode::DetachChild( LPXNode node )
|
||||||
{
|
{
|
||||||
XNodes::iterator it = GetChildIterator( node );
|
XNodes::iterator it = GetChildIterator( node );
|
||||||
if( it != childs.end() )
|
if( it != childs.end() )
|
||||||
@@ -1076,7 +1076,7 @@ LPXNode _tagXMLNode::DetachChild( LPXNode node )
|
|||||||
// Coder Date Desc
|
// Coder Date Desc
|
||||||
// bro 2002-10-29
|
// bro 2002-10-29
|
||||||
//========================================================
|
//========================================================
|
||||||
LPXAttr _tagXMLNode::DetachAttr( LPXAttr attr )
|
LPXAttr XNode::DetachAttr( LPXAttr attr )
|
||||||
{
|
{
|
||||||
XAttrs::iterator it = GetAttrIterator( attr );
|
XAttrs::iterator it = GetAttrIterator( attr );
|
||||||
if( it != attrs.end() )
|
if( it != attrs.end() )
|
||||||
@@ -1087,13 +1087,13 @@ LPXAttr _tagXMLNode::DetachAttr( LPXAttr attr )
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
_tagXMLEntitys::_tagXMLEntitys( LPXENTITY entities, int count )
|
XENTITYS::XENTITYS( LPXENTITY entities, int count )
|
||||||
{
|
{
|
||||||
for( int i = 0; i < count; i++)
|
for( int i = 0; i < count; i++)
|
||||||
push_back( entities[i] );
|
push_back( entities[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXENTITY _tagXMLEntitys::GetEntity( int entity )
|
LPXENTITY XENTITYS::GetEntity( int entity )
|
||||||
{
|
{
|
||||||
for( unsigned i = 0 ; i < size(); i ++ )
|
for( unsigned i = 0 ; i < size(); i ++ )
|
||||||
{
|
{
|
||||||
@@ -1103,7 +1103,7 @@ LPXENTITY _tagXMLEntitys::GetEntity( int entity )
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LPXENTITY _tagXMLEntitys::GetEntity( char* entity )
|
LPXENTITY XENTITYS::GetEntity( char* entity )
|
||||||
{
|
{
|
||||||
for( unsigned i = 0 ; i < size(); i ++ )
|
for( unsigned i = 0 ; i < size(); i ++ )
|
||||||
{
|
{
|
||||||
@@ -1118,7 +1118,7 @@ LPXENTITY _tagXMLEntitys::GetEntity( char* entity )
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _tagXMLEntitys::GetEntityCount( const char* str )
|
int XENTITYS::GetEntityCount( const char* str )
|
||||||
{
|
{
|
||||||
int nCount = 0;
|
int nCount = 0;
|
||||||
char* ps = (char*)str;
|
char* ps = (char*)str;
|
||||||
@@ -1127,7 +1127,7 @@ int _tagXMLEntitys::GetEntityCount( const char* str )
|
|||||||
return nCount;
|
return nCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _tagXMLEntitys::Ref2Entity( const char* estr, char* str, int strlen )
|
int XENTITYS::Ref2Entity( const char* estr, char* str, int strlen )
|
||||||
{
|
{
|
||||||
char* pes = (char*)estr;
|
char* pes = (char*)estr;
|
||||||
char* ps = str;
|
char* ps = str;
|
||||||
@@ -1151,7 +1151,7 @@ int _tagXMLEntitys::Ref2Entity( const char* estr, char* str, int strlen )
|
|||||||
return ps-str;
|
return ps-str;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _tagXMLEntitys::Entity2Ref( const char* str, char* estr, int estrlen )
|
int XENTITYS::Entity2Ref( const char* str, char* estr, int estrlen )
|
||||||
{
|
{
|
||||||
char* ps = (char*)str;
|
char* ps = (char*)str;
|
||||||
char* pes = (char*)estr;
|
char* pes = (char*)estr;
|
||||||
@@ -1176,7 +1176,7 @@ int _tagXMLEntitys::Entity2Ref( const char* str, char* estr, int estrlen )
|
|||||||
return pes-estr;
|
return pes-estr;
|
||||||
}
|
}
|
||||||
|
|
||||||
CString _tagXMLEntitys::Ref2Entity( const char* estr )
|
CString XENTITYS::Ref2Entity( const char* estr )
|
||||||
{
|
{
|
||||||
CString es;
|
CString es;
|
||||||
if( estr )
|
if( estr )
|
||||||
@@ -1191,7 +1191,7 @@ CString _tagXMLEntitys::Ref2Entity( const char* estr )
|
|||||||
return es;
|
return es;
|
||||||
}
|
}
|
||||||
|
|
||||||
CString _tagXMLEntitys::Entity2Ref( const char* str )
|
CString XENTITYS::Entity2Ref( const char* str )
|
||||||
{
|
{
|
||||||
CString s;
|
CString s;
|
||||||
if( str )
|
if( str )
|
||||||
@@ -1219,7 +1219,7 @@ CString XEntity2Ref( const char* str )
|
|||||||
return entityDefault.Entity2Ref( str );
|
return entityDefault.Entity2Ref( str );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _tagXMLNode::LoadFromFile( CString sFile, LPPARSEINFO pi )
|
bool XNode::LoadFromFile( CString sFile, LPPARSEINFO pi )
|
||||||
{
|
{
|
||||||
RageFile f;
|
RageFile f;
|
||||||
if( !f.Open(sFile, RageFile::READ) )
|
if( !f.Open(sFile, RageFile::READ) )
|
||||||
@@ -1233,7 +1233,7 @@ bool _tagXMLNode::LoadFromFile( CString sFile, LPPARSEINFO pi )
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _tagXMLNode::SaveToFile( CString sFile, LPDISP_OPT opt )
|
bool XNode::SaveToFile( CString sFile, LPDISP_OPT opt )
|
||||||
{
|
{
|
||||||
RageFile f;
|
RageFile f;
|
||||||
if( !f.Open(sFile, RageFile::WRITE) )
|
if( !f.Open(sFile, RageFile::WRITE) )
|
||||||
|
|||||||
+30
-25
@@ -22,22 +22,23 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <RageUtil.h>
|
#include <RageUtil.h>
|
||||||
|
|
||||||
struct _tagXMLAttr;
|
struct XAttr;
|
||||||
typedef _tagXMLAttr XAttr, *LPXAttr;
|
typedef XAttr* LPXAttr;
|
||||||
typedef std::vector<LPXAttr> XAttrs;
|
typedef std::vector<LPXAttr> XAttrs;
|
||||||
struct _tagXMLNode;
|
struct XNode;
|
||||||
typedef _tagXMLNode XNode, *LPXNode;
|
typedef XNode* LPXNode;
|
||||||
typedef std::vector<LPXNode> XNodes, *LPXNodes;
|
typedef std::vector<LPXNode> XNodes, *LPXNodes;
|
||||||
|
|
||||||
// Entity Encode/Decode Support
|
// Entity Encode/Decode Support
|
||||||
typedef struct _tagXmlEntity
|
struct XENTITY
|
||||||
{
|
{
|
||||||
TCHAR entity; // entity ( & " ' < > )
|
TCHAR entity; // entity ( & " ' < > )
|
||||||
TCHAR ref[10]; // entity reference ( & " etc )
|
TCHAR ref[10]; // entity reference ( & " etc )
|
||||||
int ref_len; // entity reference length
|
int ref_len; // entity reference length
|
||||||
}XENTITY,*LPXENTITY;
|
};
|
||||||
|
typedef XENTITY* LPXENTITY;
|
||||||
|
|
||||||
typedef struct _tagXMLEntitys : public std::vector<XENTITY>
|
struct XENTITYS : public std::vector<XENTITY>
|
||||||
{
|
{
|
||||||
LPXENTITY GetEntity( int entity );
|
LPXENTITY GetEntity( int entity );
|
||||||
LPXENTITY GetEntity( char* entity );
|
LPXENTITY GetEntity( char* entity );
|
||||||
@@ -47,24 +48,25 @@ typedef struct _tagXMLEntitys : public std::vector<XENTITY>
|
|||||||
CString Ref2Entity( const char* estr );
|
CString Ref2Entity( const char* estr );
|
||||||
CString Entity2Ref( const char* str );
|
CString Entity2Ref( const char* str );
|
||||||
|
|
||||||
_tagXMLEntitys(){};
|
XENTITYS(){};
|
||||||
_tagXMLEntitys( LPXENTITY entities, int count );
|
XENTITYS( LPXENTITY entities, int count );
|
||||||
}XENTITYS,*LPXENTITYS;
|
};
|
||||||
|
typedef XENTITYS* LPXENTITYS;
|
||||||
extern XENTITYS entityDefault;
|
extern XENTITYS entityDefault;
|
||||||
CString XRef2Entity( const char* estr );
|
CString XRef2Entity( const char* estr );
|
||||||
CString XEntity2Ref( const char* str );
|
CString XEntity2Ref( const char* str );
|
||||||
|
|
||||||
typedef enum
|
enum PCODE
|
||||||
{
|
{
|
||||||
PIE_PARSE_WELFORMED = 0,
|
PIE_PARSE_WELFORMED = 0,
|
||||||
PIE_ALONE_NOT_CLOSED,
|
PIE_ALONE_NOT_CLOSED,
|
||||||
PIE_NOT_CLOSED,
|
PIE_NOT_CLOSED,
|
||||||
PIE_NOT_NESTED,
|
PIE_NOT_NESTED,
|
||||||
PIE_ATTR_NO_VALUE
|
PIE_ATTR_NO_VALUE
|
||||||
}PCODE;
|
};
|
||||||
|
|
||||||
// Parse info.
|
// Parse info.
|
||||||
typedef struct _tagParseInfo
|
struct PARSEINFO
|
||||||
{
|
{
|
||||||
bool trim_value; // [set] do trim when parse?
|
bool trim_value; // [set] do trim when parse?
|
||||||
bool entity_value; // [set] do convert from reference to entity? ( < -> < )
|
bool entity_value; // [set] do convert from reference to entity? ( < -> < )
|
||||||
@@ -77,24 +79,26 @@ typedef struct _tagParseInfo
|
|||||||
PCODE error_code; // [get] error code
|
PCODE error_code; // [get] error code
|
||||||
CString error_string; // [get] error string
|
CString error_string; // [get] error string
|
||||||
|
|
||||||
_tagParseInfo() { trim_value = true; entity_value = true; entitys = &entityDefault; xml = NULL; erorr_occur = false; error_pointer = NULL; error_code = PIE_PARSE_WELFORMED; escape_value = 0; }
|
PARSEINFO() { trim_value = true; entity_value = true; entitys = &entityDefault; xml = NULL; erorr_occur = false; error_pointer = NULL; error_code = PIE_PARSE_WELFORMED; escape_value = 0; }
|
||||||
}PARSEINFO,*LPPARSEINFO;
|
};
|
||||||
|
typedef PARSEINFO* LPPARSEINFO;
|
||||||
extern PARSEINFO piDefault;
|
extern PARSEINFO piDefault;
|
||||||
|
|
||||||
// display optional environment
|
// display optional environment
|
||||||
typedef struct _tagDispOption
|
struct DISP_OPT
|
||||||
{
|
{
|
||||||
bool newline; // newline when new tag
|
bool newline; // newline when new tag
|
||||||
bool reference_value; // do convert from entity to reference ( < -> < )
|
bool reference_value; // do convert from entity to reference ( < -> < )
|
||||||
LPXENTITYS entitys; // entity table for entity encode
|
LPXENTITYS entitys; // entity table for entity encode
|
||||||
|
|
||||||
int tab_base; // internal usage
|
int tab_base; // internal usage
|
||||||
_tagDispOption() { newline = true; reference_value = true; entitys = &entityDefault; tab_base = 0; }
|
DISP_OPT() { newline = true; reference_value = true; entitys = &entityDefault; tab_base = 0; }
|
||||||
}DISP_OPT, *LPDISP_OPT;
|
};
|
||||||
|
typedef DISP_OPT* LPDISP_OPT;
|
||||||
extern DISP_OPT optDefault;
|
extern DISP_OPT optDefault;
|
||||||
|
|
||||||
// XAttr : Attribute Implementation
|
// XAttr : Attribute Implementation
|
||||||
typedef struct _tagXMLAttr
|
struct XAttr
|
||||||
{
|
{
|
||||||
CString name;
|
CString name;
|
||||||
CString value;
|
CString value;
|
||||||
@@ -103,13 +107,14 @@ typedef struct _tagXMLAttr
|
|||||||
void GetValue(float &out) const { out = (float) atof(value); }
|
void GetValue(float &out) const { out = (float) atof(value); }
|
||||||
void GetValue(bool &out) const { out = atoi(value) != 0; }
|
void GetValue(bool &out) const { out = atoi(value) != 0; }
|
||||||
|
|
||||||
_tagXMLNode* parent;
|
XNode* parent;
|
||||||
|
|
||||||
CString GetXML( LPDISP_OPT opt = &optDefault );
|
CString GetXML( LPDISP_OPT opt = &optDefault );
|
||||||
}XAttr, *LPXAttr;
|
};
|
||||||
|
typedef XAttr* LPXAttr;
|
||||||
|
|
||||||
// XMLNode structure
|
// XMLNode structure
|
||||||
typedef struct _tagXMLNode
|
struct XNode
|
||||||
{
|
{
|
||||||
// name and value
|
// name and value
|
||||||
CString name;
|
CString name;
|
||||||
@@ -182,11 +187,11 @@ typedef struct _tagXMLNode
|
|||||||
// operator overloads
|
// operator overloads
|
||||||
LPXNode operator [] ( int i ) { return GetChild(i); }
|
LPXNode operator [] ( int i ) { return GetChild(i); }
|
||||||
|
|
||||||
_tagXMLNode() { parent = NULL; }
|
XNode() { parent = NULL; }
|
||||||
~_tagXMLNode();
|
~XNode();
|
||||||
|
|
||||||
void Close();
|
void Close();
|
||||||
}XNode, *LPXNode;
|
};
|
||||||
|
|
||||||
// Helper Funtion
|
// Helper Funtion
|
||||||
inline long XStr2Int( const char* str, long default_value = 0 )
|
inline long XStr2Int( const char* str, long default_value = 0 )
|
||||||
|
|||||||
Reference in New Issue
Block a user