CallBacks.h

00001 #ifndef REBECCA_CALLBACKS_H
00002 #define REBECCA_CALLBACKS_H
00003 
00004 /*
00005  * RebeccaAIML, Artificial Intelligence Markup Language 
00006  * C++ api and engine.
00007  *
00008  * Copyright (C) 2005 Frank Hassanabad
00009  *
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Lesser General Public
00012  * License as published by the Free Software Foundation; either
00013  * version 2.1 of the License, or (at your option) any later version.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Lesser General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Lesser General Public
00021  * License along with this library; if not, write to the Free Software
00022  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00023  */
00024 
00025 //To get the REBECA_EXPORT macro
00026 #include <rebecca/exports.h>
00027 
00028 //See AimlFacade for the explanation of this namespace
00029 namespace rebecca
00030 {
00031 //See AimlFacade for the explanation of this namespace
00032 namespace impl
00033 {
00034 
00060 class REBECCA_EXPORT CallBacks
00061 {
00062     public:
00063 
00064         /*
00065          * Informative callbacks
00066          *
00067          */
00068 
00087         virtual void storeGossip(const char * const gossip) { }
00088         
00103         virtual void categoryLoaded() { }
00104 
00122         virtual void filePreLoad(const char * const fileName) { }
00123 
00141         virtual void filePostLoad(const char * const fileName) { }
00142 
00163         virtual void symbolicReduction(const char * const symbol) { }
00164         
00180         virtual void infiniteSymbolicReduction() { } 
00181 
00182         /*
00183          * XML Parse Errors
00184          *
00185          */
00186 
00198         virtual void XMLParseError(const char * const message) { } 
00199 
00211         virtual void XMLParseWarning(const char * const message) { } 
00212 
00224         virtual void XMLParseFatalError(const char * const message) { } 
00225 
00226         /*
00227          * AIML tag Errors
00228          *
00229          */
00230 
00244         virtual void thatStarTagSizeExceeded() { }
00245 
00259         virtual void topicStarTagSizeExceeded() { }
00260 
00274         virtual void starTagSizeExceeded() { }
00275 
00293         virtual void inputTagNumericConversionError(const char * const message) { }
00294 
00308         virtual void inputTagSizeExceeded() { } 
00309 
00327         virtual void starTagNumericConversionError(const char * const message) { } 
00328 
00342         virtual void thatTagSizeExceeded() { }
00343 
00361         virtual void thatTagNumericConversionError(const char * const message) { } 
00362 
00380         virtual void topicStarTagNumericConversionError(const char * const message) { } 
00381 
00399         virtual void thatStarTagNumericConversionError(const char * const message) { }
00400 
00406         virtual ~CallBacks() { }
00407 };
00408 
00409 
00410 } //end namespace impl
00411 
00412 //expose CallBacks to Rebecca namespace 
00413 using rebecca::impl::CallBacks;
00414 
00415 } //end namespace rebecca
00416 
00417 #endif
00418 

Generated on Tue Feb 14 22:44:57 2006 for RebeccaAIML by  doxygen 1.4.5