00001 #ifndef REBECCA_FRAMEWORK_DATE_H 00002 #define REBECCA_FRAMEWORK_DATE_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 /* Disable Windows VC 7.x warning about 00026 * shared_ptr needing dll-interface and 00027 * about it ignoring the throw specification 00028 */ 00029 #ifdef _WIN32 00030 # pragma warning ( push ) 00031 # pragma warning( disable : 4251 ) 00032 # pragma warning( disable : 4290 ) 00033 #endif 00034 00035 //Rebecca includes 00036 #include <rebecca/framework/InnerTemplate.h> 00037 00038 namespace rebecca 00039 { 00040 namespace framework 00041 { 00042 namespace impl 00043 { 00044 00045 /* 00046 * Forward declerations 00047 */ 00048 00059 class DateImpl; 00060 00072 class REBECCA_EXPORT Date : public InnerTemplate 00073 { 00074 public: 00075 00085 Date() 00086 throw(InternalProgrammerErrorException &); 00087 00097 virtual StringPimpl getString() const 00098 throw(InternalProgrammerErrorException &); 00099 00104 virtual ~Date(); 00105 00106 private: 00107 00118 shared_ptr<DateImpl> m_pimpl; 00119 00120 }; 00121 00122 } //end of namespace impl 00123 00124 //Expose just the class name to the framework namespace 00125 using rebecca::framework::impl::Date; 00126 00127 } //end of namespace framework 00128 } //end of namespace rebecca 00129 00130 #ifdef _WIN32 00131 # pragma warning ( pop ) 00132 #endif 00133 00134 #endif 00135