00001 #ifndef REBECCA_FRAMEWORK_AIML_H
00002 #define REBECCA_FRAMEWORK_AIML_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <rebecca/framework/Tag.h>
00027 #include <rebecca/framework/Topic.h>
00028
00029
00030
00031
00032
00033 #ifdef _WIN32
00034 # pragma warning ( push )
00035 # pragma warning( disable : 4251 )
00036 # pragma warning( disable : 4290 )
00037 #endif
00038
00039 namespace rebecca
00040 {
00041 namespace framework
00042 {
00043 namespace impl
00044 {
00045
00046
00047
00048
00049
00060 class AIMLImpl;
00061
00062 class GraphBuilderFramework;
00063
00075 class REBECCA_EXPORT AIML : public Tag
00076 {
00077
00078 public:
00079
00099 AIML(GraphBuilderFramework &builder) throw(InternalProgrammerErrorException &);
00100
00112 virtual void setAttribute(const StringPimpl &name, const StringPimpl &value)
00113 throw(InternalProgrammerErrorException &);
00114
00135 virtual void handleInnerTag(const shared_ptr<Tag> &tag)
00136 throw(InternalProgrammerErrorException &);
00137
00142 virtual ~AIML();
00143
00144 private:
00145
00156 shared_ptr<AIMLImpl> m_pimpl;
00157 };
00158
00159
00160 }
00161
00162
00163 using rebecca::framework::impl::AIML;
00164
00165 }
00166 }
00167
00168 #ifdef _WIN32
00169 # pragma warning ( pop )
00170 #endif
00171
00172 #endif
00173