NetworkAimlFacade.h

00001 #ifndef REBECCA_NETWORKAIMLFACADE_H
00002 #define REBECCA_NETWORKAIMLFACADE_H
00003 
00004 /*
00005  * RebeccaAIML, Artificial Intelligence Markup Language 
00006  * C++ api and engine.
00007  *
00008  * Copyright (C) 2005,2006,2007 Frank Hassanabad
00009  *
00010  * This file is part of RebeccaAIML.
00011  *
00012  * RebeccaAIML is free software; you can redistribute it and/or modify
00013  * it under the terms of the GNU General Public License as published by
00014  * the Free Software Foundation; either version 3 of the License, or
00015  * (at your option) any later version.
00016  *
00017  * RebeccaAIML is distributed in the hope that it will be useful,
00018  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020  * GNU General Public License for more details.
00021  *
00022  * You should have received a copy of the GNU General Public License
00023  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00024  */
00025 
00026 //To get the REBECA_EXPORT macro
00027 #include <rebecca/exports.h>
00028 #include <rebecca/Exceptions.h>
00029 
00030 //To get the size_t for the deletions
00031 #include <cstddef>
00032 
00033 /* Disable Windows VC 7.x warning about 
00034  * it ignoring the throw specification
00035  */
00036 #ifdef _WIN32
00037 #    pragma warning ( push )
00038 #    pragma warning( disable : 4290 )
00039 #endif
00040 
00041 namespace rebecca
00042 {
00043 namespace impl
00044 {
00045 
00046 //Forward decleration
00047 class NetworkGraphBuilder;
00048 
00075 class REBECCA_EXPORT NetworkAimlFacade
00076 {
00077     public:
00078 
00102         NetworkAimlFacade(int argc, char *argv[]) 
00103             throw(NetworkException &, Exception &);
00104 
00122         NetworkGraphBuilder &getNetworkGraphBuilder() throw();
00123 
00130         virtual ~NetworkAimlFacade();
00131         
00154         void operator delete(void* p);
00155 
00156 
00181         void *operator new(size_t size);
00182 
00183 
00184     private:
00185 
00195         NetworkAimlFacade &operator=(const NetworkAimlFacade &networkAimlFacade);
00196 
00206         NetworkAimlFacade(const NetworkAimlFacade& networkAimlFacade);
00207 
00217         NetworkGraphBuilder *m_graphBuilder;
00218 };
00219 
00220 
00221 
00222 } //end namespace impl
00223 
00224 //expose AimlFacade to the rebecca namespace
00225 using rebecca::impl::NetworkAimlFacade;
00226 
00227 } //end namespace rebecca
00228 
00229 #ifdef _WIN32
00230 #    pragma warning ( pop )
00231 #endif
00232 
00233 
00234 #endif

Generated on Mon Aug 27 12:26:48 2007 for RebeccaAIML by  doxygen 1.5.3