00001 #ifndef CXXSP_RUN_TIME_TAGLIB_H_ 00002 #define CXXSP_RUN_TIME_TAGLIB_H_ 00003 00004 #include <map> 00005 #include <string> 00006 #include <servlet/taglib/Taglib.h> 00007 #include <servlet/taglib/Generator.h> 00008 00009 namespace servlet 00010 { 00011 namespace taglib 00012 { 00013 00014 class RunTimeTaglib: public Taglib 00015 { 00016 private: 00017 class RunTimeTagGenerator: public Generator 00018 { 00019 private: 00020 std::string m_name; 00021 public: 00022 RunTimeTagGenerator(const std::string&); 00023 virtual ~RunTimeTagGenerator(); 00024 virtual void doStartTag(const attribs_t& attribs); 00025 virtual void doEndTag(); 00026 }; 00027 private: 00028 std::string m_uri; 00029 public: 00030 RunTimeTaglib(const std::string& prefix, const attribs_t& attribs); 00031 //void registerTag(const std::string& name, TagFactoryBase* factory); 00032 virtual Generator* getTag(const std::string&); 00033 virtual void releaseTag(Generator*); 00034 }; 00035 00036 } // namespace taglib 00037 } // namespace servlet 00038 00039 00040 #endif // CXXSP_RUN_TIME_TAGLIB_H_