clean up the scope and names of the error code.

This commit is contained in:
Lee Thomason 2014-09-11 14:56:43 -07:00
parent cd8550c29c
commit 331596e83c
3 changed files with 42 additions and 35 deletions

View File

@ -476,10 +476,6 @@ bool XMLUtil::ToDouble( const char* str, double* value )
return false; return false;
} }
const char* XMLUtil::ToErrorName( const XMLError errorID )
{
return ErrorNames[errorID];
}
char* XMLDocument::Identify( char* p, XMLNode** node ) char* XMLDocument::Identify( char* p, XMLNode** node )
{ {
@ -1581,6 +1577,32 @@ bool XMLElement::Accept( XMLVisitor* visitor ) const
// --------- XMLDocument ----------- // // --------- XMLDocument ----------- //
// Warning: List must match 'enum XMLError'
const char* XMLDocument::_errorNames[XML_ERROR_COUNT] = {
"XML_SUCCESS",
"XML_NO_ATTRIBUTE",
"XML_WRONG_ATTRIBUTE_TYPE",
"XML_ERROR_FILE_NOT_FOUND",
"XML_ERROR_FILE_COULD_NOT_BE_OPENED",
"XML_ERROR_FILE_READ_ERROR",
"XML_ERROR_ELEMENT_MISMATCH",
"XML_ERROR_PARSING_ELEMENT",
"XML_ERROR_PARSING_ATTRIBUTE",
"XML_ERROR_IDENTIFYING_TAG",
"XML_ERROR_PARSING_TEXT",
"XML_ERROR_PARSING_CDATA",
"XML_ERROR_PARSING_COMMENT",
"XML_ERROR_PARSING_DECLARATION",
"XML_ERROR_PARSING_UNKNOWN",
"XML_ERROR_EMPTY_DOCUMENT",
"XML_ERROR_MISMATCHED_ELEMENT",
"XML_ERROR_PARSING",
"XML_CAN_NOT_CONVERT_TEXT",
"XML_NO_TEXT_NODE"
};
XMLDocument::XMLDocument( bool processEntities, Whitespace whitespace ) : XMLDocument::XMLDocument( bool processEntities, Whitespace whitespace ) :
XMLNode( 0 ), XMLNode( 0 ),
_writeBOM( false ), _writeBOM( false ),
@ -1816,6 +1838,11 @@ void XMLDocument::SetError( XMLError error, const char* str1, const char* str2 )
_errorStr2 = str2; _errorStr2 = str2;
} }
const char* XMLDocument::ErrorName() const
{
TIXMLASSERT(_errorID >= 0 && _errorID < XML_ERROR_COUNT );
return _errorNames[_errorID];
}
void XMLDocument::PrintError() const void XMLDocument::PrintError() const
{ {
@ -1831,8 +1858,8 @@ void XMLDocument::PrintError() const
TIXML_SNPRINTF( buf2, LEN, "%s", _errorStr2 ); TIXML_SNPRINTF( buf2, LEN, "%s", _errorStr2 );
} }
printf( "XMLDocument error id=%d str1=%s str2=%s\n", printf( "XMLDocument error id=%d '%s' str1=%s str2=%s\n",
_errorID, buf1, buf2 ); _errorID, ErrorName(), buf1, buf2 );
} }
} }

View File

@ -480,6 +480,7 @@ public:
} }
}; };
// WARNING: must match XMLErrorNames[]
enum XMLError { enum XMLError {
XML_SUCCESS = 0, XML_SUCCESS = 0,
XML_NO_ERROR = 0, XML_NO_ERROR = 0,
@ -501,34 +502,12 @@ enum XMLError {
XML_ERROR_MISMATCHED_ELEMENT, XML_ERROR_MISMATCHED_ELEMENT,
XML_ERROR_PARSING, XML_ERROR_PARSING,
XML_CAN_NOT_CONVERT_TEXT, XML_CAN_NOT_CONVERT_TEXT,
XML_NO_TEXT_NODE XML_NO_TEXT_NODE,
XML_ERROR_COUNT
}; };
static const char *ErrorNames[] = {
"XML_SUCCESS",
"XML_NO_ATTRIBUTE",
"XML_WRONG_ATTRIBUTE_TYPE",
"XML_ERROR_FILE_NOT_FOUND",
"XML_ERROR_FILE_COULD_NOT_BE_OPENED",
"XML_ERROR_FILE_READ_ERROR",
"XML_ERROR_ELEMENT_MISMATCH",
"XML_ERROR_PARSING_ELEMENT",
"XML_ERROR_PARSING_ATTRIBUTE",
"XML_ERROR_IDENTIFYING_TAG",
"XML_ERROR_PARSING_TEXT",
"XML_ERROR_PARSING_CDATA",
"XML_ERROR_PARSING_COMMENT",
"XML_ERROR_PARSING_DECLARATION",
"XML_ERROR_PARSING_UNKNOWN",
"XML_ERROR_EMPTY_DOCUMENT",
"XML_ERROR_MISMATCHED_ELEMENT",
"XML_ERROR_PARSING",
"XML_CAN_NOT_CONVERT_TEXT",
"XML_NO_TEXT_NODE"
};
/* /*
Utility functionality. Utility functionality.
*/ */
@ -605,9 +584,6 @@ public:
static bool ToBool( const char* str, bool* value ); static bool ToBool( const char* str, bool* value );
static bool ToFloat( const char* str, float* value ); static bool ToFloat( const char* str, float* value );
static bool ToDouble( const char* str, double* value ); static bool ToDouble( const char* str, double* value );
// converts XMLError to strings
static const char* ToErrorName( const XMLError errorID );
}; };
@ -1687,6 +1663,8 @@ public:
XMLError ErrorID() const { XMLError ErrorID() const {
return _errorID; return _errorID;
} }
const char* ErrorName() const;
/// Return a possibly helpful diagnostic location or string. /// Return a possibly helpful diagnostic location or string.
const char* GetErrorStr1() const { const char* GetErrorStr1() const {
return _errorStr1; return _errorStr1;
@ -1727,6 +1705,8 @@ private:
MemPoolT< sizeof(XMLAttribute) > _attributePool; MemPoolT< sizeof(XMLAttribute) > _attributePool;
MemPoolT< sizeof(XMLText) > _textPool; MemPoolT< sizeof(XMLText) > _textPool;
MemPoolT< sizeof(XMLComment) > _commentPool; MemPoolT< sizeof(XMLComment) > _commentPool;
static const char* _errorNames[XML_ERROR_COUNT];
}; };

View File

@ -1222,7 +1222,7 @@ int main( int argc, const char ** argv )
XMLDocument doc; XMLDocument doc;
XMLError error = doc.LoadFile( "resources/empty.xml" ); XMLError error = doc.LoadFile( "resources/empty.xml" );
XMLTest( "Loading an empty file", XML_ERROR_EMPTY_DOCUMENT, error ); XMLTest( "Loading an empty file", XML_ERROR_EMPTY_DOCUMENT, error );
XMLTest( "Loading an empty file and ErrorName as string", "XML_ERROR_EMPTY_DOCUMENT", XMLUtil::ToErrorName(error) ); XMLTest( "Loading an empty file and ErrorName as string", "XML_ERROR_EMPTY_DOCUMENT", doc.ErrorName() );
} }
{ {