00001 #ifndef CUSTOMHTML_TAG_LAYER_CUSTOMTAGSIMPL_H
00002 #define CUSTOMHTML_TAG_LAYER_CUSTOMTAGSIMPL_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
00027
00028 #ifdef _WIN32
00029 # pragma warning ( push )
00030 # pragma warning( disable : 4251 )
00031 # pragma warning( disable : 4290 )
00032 #endif
00033
00034
00035 #include <rebecca/framework/CustomTags.h>
00036
00037
00038 #include "exports.h"
00039 #include "typedefs.h"
00040 #include "Html.h"
00041
00042
00043 #include <boost/shared_ptr.hpp>
00044
00045
00046 #include <map>
00047
00056 namespace customTag
00057 {
00058
00068 namespace impl
00069 {
00070
00072
00073 using namespace rebecca::framework;
00074 using namespace boost;
00075 using namespace std;
00076
00096 class CUSTOM_TAG_EXPORT CustomTagsImpl : public CustomTags
00097 {
00098 public:
00099
00108 CustomTagsImpl()
00109 throw(InternalProgrammerErrorException &);
00110
00144 virtual shared_ptr<Tag> createTagClass(const char * const className, GraphBuilderFramework &builder)
00145 throw(InternalProgrammerErrorException &);
00146
00155 virtual ~CustomTagsImpl();
00156
00157 private:
00158
00163 Html m_htmlPage;
00164
00172 bool m_templateSideThat;
00173
00174 };
00175
00176 }
00177 }
00178
00179
00186 extern "C" CUSTOM_TAG_EXPORT customTag::impl::CustomTags *rebeccaAIMLLoadCustomTags()
00187 {
00188 return new customTag::impl::CustomTagsImpl;
00189 }
00190
00191
00198 extern "C" CUSTOM_TAG_EXPORT void rebeccaAIMLRemoveCustomTags(customTag::impl::CustomTagsImpl *customTags)
00199 {
00200 delete customTags;
00201 }
00202
00203 #ifdef _WIN32
00204 # pragma warning ( pop )
00205 #endif
00206
00207 #endif