CFugue
|
#include <Parser.h>
Inherits OIL::CEventHandlerArgs.
Public Member Functions | |
ErrorEventHandlerArgs (ErrorCode argErrCode, const TCHAR *argErrMsg, const TCHAR *argSzToken) | |
Public Attributes | |
const ErrorCode | errCode |
Error Code. | |
const TCHAR * | szErrMsg |
The Error message sent by Parser. | |
const TCHAR * | szToken |
Token the error is applicable for. | |
bool | bShouldStopParsing |
Should Parser continue to parse or should stop now? (only for PARSE_ERRORS) | |
The structure that is passed as argument to the Error Event Handler procedure. Listeners who want to know about the error events can subscribe to the evError event and handle the trace events raised by MusicStringParser as the parsing progresses.
Unlike the other programming paradigms that teach greedy methods asking you to exit the moment any error occurs, CFugue library fights to live its best before it gives up. So, usually if there is any error in parsing a token, parser does not abort and tries to continue parsing the rest of the tokens. In case this behavior is not suitable for your application and if you would like to stop the processing immediately when there is an error, you can indicate your preference to stop the processing by using the
variable. Set it to true in the error handler procedure, to halt the processing immediately. By default it would be False (meaning the parser should continue its best to resolve the token ignoring the error).
Note that, when there are multiple listeners for the event, options set by one listener might be overriden by the next listener. Parser only respects the last value it sees. So, use care while dealing with multiple listeners, and ensure that they do not use conflicting settings.
Ofcourse, in case of critical errors such as memory allocation failure etc.. there is nothing that could be done, so the listener preferences are ignored and processing would be stopped.
CFugue, the C++ Music Programming Library | © Copyright 2009 Cenacle Research India Private Limited | Gopalakrishna Palem |