00001 #ifndef CUSTOMHTML_TAG_LAYER_CUSTOMTOPIC_H
00002 #define CUSTOMHTML_TAG_LAYER_CUSTOMTOPIC_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/Topic.h>
00027 #include <rebecca/StringPimpl.h>
00028 #include <rebecca/framework/GraphBuilderFramework.h>
00029
00030
00031 #include <boost/shared_ptr.hpp>
00032
00033
00034 #include "exports.h"
00035 #include "typedefs.h"
00036
00037
00038 #include <iostream>
00039 #include <string>
00040 #include <map>
00041
00042
00043
00044
00045 #ifdef _WIN32
00046 # pragma warning( disable : 4290 )
00047 #endif
00048
00049 namespace customTag
00050 {
00051 namespace impl
00052 {
00053
00054 using namespace rebecca::framework;
00055 using namespace rebecca;
00056 using namespace boost;
00057 using namespace std;
00058
00059
00060
00061
00062 class Html;
00063
00082 class CUSTOM_TAG_EXPORT CustomTopic : public Topic
00083 {
00088 typedef map<string, ofstream *> fileStringMap;
00089
00090 public:
00091
00112 CustomTopic(GraphBuilderFramework &builder, Html &htmlPage)
00113 throw(InternalProgrammerErrorException &);
00114
00128 void handleInnerTag(const shared_ptr<Tag> &tag)
00129 throw(InternalProgrammerErrorException &);
00130
00147 void setAttribute(const StringPimpl &name, const StringPimpl &value)
00148 throw(InternalProgrammerErrorException &);
00149
00150 private:
00151
00156 string m_topic;
00157
00164 GraphBuilderFramework &m_builder;
00165
00170 Html &m_htmlPage;
00171 };
00172
00173 }
00174 }
00175
00176 #endif
00177
00178