00001
00002
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 #ifndef _MPCL_TEXT_HTML_DEFS__
00028 #define _MPCL_TEXT_HTML_DEFS__
00029
00030 #include <functional>
00031 #include "exceptions.hh"
00032
00033
00035 namespace mpcl
00036 {
00037
00039 namespace text
00040 {
00041
00047 namespace html
00048 {
00049
00050
00051
00052
00053
00055 extern const char* pkcDefaultBodyId;
00056
00058 extern const char* pkcDefaultFramesetId;
00059
00061 extern const char* pkcDefaultHeadId;
00062
00064 extern const char* pkcDefaultTitleId;
00065
00067 extern const char* pkcTypeTextCss;
00068
00070 extern const char kcIdentifierSeparator;
00071
00073 extern const char kcIdentifierValueSeparator;
00074
00075
00076
00077
00078
00079
00084 template <typename TTargetIdentifier, typename TSourceItem>
00085 struct MMatchPairIdentifier : public std::unary_function<TSourceItem, bool>
00086 {
00087
00088 public:
00089
00091 TTargetIdentifier tTargetIdentifier;
00092
00093
00094 public:
00095
00096
00097
00098
00099
00103 MMatchPairIdentifier (void) :
00104 tTargetIdentifier() {}
00105
00110 MMatchPairIdentifier (const TTargetIdentifier& rktTARGET_IDENTIFIER) :
00111 tTargetIdentifier (rktTARGET_IDENTIFIER) {}
00112
00117 void setTarget (const TTargetIdentifier& rktTARGET_IDENTIFIER)
00118 {
00119 tTargetIdentifier = rktTARGET_IDENTIFIER;
00120 }
00121
00126 bool operator () (const TSourceItem& rktSOURCE_ITEM)
00127 {
00128 return ( rktSOURCE_ITEM.second->identifier() == tTargetIdentifier );
00129 }
00130
00131 };
00132
00137 template <typename TTargetItem, typename TSourceItem>
00138 struct MWriteIdentifierTo : public std::unary_function<TTargetItem, void>
00139 {
00140
00141 public:
00142
00144 TTargetItem& rtTargetItem;
00145
00146
00147 public:
00148
00149
00150
00151
00152
00158 MWriteIdentifierTo (TTargetItem& rtTARGET_ITEM) :
00159 rtTargetItem (rtTARGET_ITEM) {}
00160
00165 void operator () (TSourceItem& rtSOURCE_ITEM)
00166 {
00167 rtTargetItem << rtSOURCE_ITEM->identifier() << endl;
00168 }
00169
00174 void operator () (const TSourceItem& rktSOURCE_ITEM)
00175 {
00176 rtTargetItem << rktSOURCE_ITEM->identifier() << endl;
00177 }
00178
00179 };
00180
00181 }
00182
00183 }
00184
00185 }
00186
00187
00188 #endif // not _MPCL_TEXT_HTML_DEFS__