summaryrefslogtreecommitdiffabout
path: root/include
authorMichael Krelin <hacker@klever.net>2008-03-03 15:57:15 (UTC)
committer Michael Krelin <hacker@klever.net>2008-03-03 15:57:15 (UTC)
commitc28479399ef0fedeb6bf14ec665bb4c427654356 (patch) (unidiff)
treeff1dfe84a54f717772bdb6233a5cbfedb57788d1 /include
parent0182b9dee269f1a8f3fc0794bfdf4a143fa1b5be (diff)
downloadlibopkele-c28479399ef0fedeb6bf14ec665bb4c427654356.zip
libopkele-c28479399ef0fedeb6bf14ec665bb4c427654356.tar.gz
libopkele-c28479399ef0fedeb6bf14ec665bb4c427654356.tar.bz2
introduced base_message class as a base for basic_openid_message
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'include') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/types.h42
1 files changed, 28 insertions, 14 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index ffb9afb..64f165c 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -118,36 +118,52 @@ namespace opkele {
118 */ 118 */
119 typedef tr1mem::shared_ptr<association_t> assoc_t; 119 typedef tr1mem::shared_ptr<association_t> assoc_t;
120 120
121 class basic_openid_message { 121 class basic_message {
122 public: 122 public:
123 typedef list<string> fields_t; 123 typedef list<string> fields_t;
124 typedef util::forward_iterator_proxy< 124 typedef util::forward_iterator_proxy<
125 string,const string&,const string* 125 string,const string&,const string*
126 > fields_iterator; 126 > fields_iterator;
127 127
128 basic_openid_message() { } 128 basic_message() { }
129 virtual ~basic_openid_message() { } 129 virtual ~basic_message() { }
130 basic_openid_message(const basic_openid_message& x); 130 basic_message(const basic_message& x);
131 void copy_to(basic_openid_message& x) const; 131 void copy_to(basic_message& x) const;
132 void append_to(basic_openid_message& x) const; 132 void append_to(basic_message& x) const;
133 133
134 virtual bool has_field(const string& n) const = 0; 134 virtual bool has_field(const string& n) const = 0;
135 virtual const string& get_field(const string& n) const = 0; 135 virtual const string& get_field(const string& n) const = 0;
136 136
137 virtual bool has_ns(const string& uri) const;
138 virtual string get_ns(const string& uri) const;
139
140 virtual fields_iterator fields_begin() const = 0; 137 virtual fields_iterator fields_begin() const = 0;
141 virtual fields_iterator fields_end() const = 0; 138 virtual fields_iterator fields_end() const = 0;
142 139
143 virtual string append_query(const string& url,const char *pfx="openid.") const; 140 virtual string append_query(const string& url,const char *pfx=0) const;
144 virtual string query_string(const char *pfx="openid.") const; 141 virtual string query_string(const char *pfx=0) const;
145
146 142
147 virtual void reset_fields(); 143 virtual void reset_fields();
148 virtual void set_field(const string& n,const string& v); 144 virtual void set_field(const string& n,const string& v);
149 virtual void reset_field(const string& n); 145 virtual void reset_field(const string& n);
150 146
147 };
148
149 class basic_openid_message : public basic_message {
150 public:
151 typedef list<string> fields_t;
152 typedef util::forward_iterator_proxy<
153 string,const string&,const string*
154 > fields_iterator;
155
156 basic_openid_message() { }
157 basic_openid_message(const basic_openid_message& x);
158
159 virtual bool has_ns(const string& uri) const;
160 virtual string get_ns(const string& uri) const;
161
162 virtual string append_query(const string& url,const char *pfx="openid.") const {
163 return basic_message::append_query(url,pfx); }
164 virtual string query_string(const char *pfx="openid.") const {
165 return basic_message::query_string(pfx); }
166
151 virtual void from_keyvalues(const string& kv); 167 virtual void from_keyvalues(const string& kv);
152 virtual void to_keyvalues(ostream& o) const; 168 virtual void to_keyvalues(ostream& o) const;
153 169
@@ -164,8 +180,6 @@ namespace opkele {
164 openid_message_t(const basic_openid_message& x) 180 openid_message_t(const basic_openid_message& x)
165 : basic_openid_message(x) { } 181 : basic_openid_message(x) { }
166 182
167 void copy_to(basic_openid_message& x) const;
168
169 bool has_field(const string& n) const; 183 bool has_field(const string& n) const;
170 const string& get_field(const string& n) const; 184 const string& get_field(const string& n) const;
171 virtual fields_iterator fields_begin() const; 185 virtual fields_iterator fields_begin() const;