summaryrefslogtreecommitdiffabout
path: root/include/opkele/types.h
Unidiff
Diffstat (limited to 'include/opkele/types.h') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/types.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index 1f48362..1fab869 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -132,99 +132,102 @@ namespace opkele {
132 132
133 virtual bool has_field(const string& n) const = 0; 133 virtual bool has_field(const string& n) const = 0;
134 virtual const string& get_field(const string& n) const = 0; 134 virtual const string& get_field(const string& n) const = 0;
135 135
136 virtual bool has_ns(const string& uri) const; 136 virtual bool has_ns(const string& uri) const;
137 virtual string get_ns(const string& uri) const; 137 virtual string get_ns(const string& uri) const;
138 138
139 virtual fields_iterator fields_begin() const = 0; 139 virtual fields_iterator fields_begin() const = 0;
140 virtual fields_iterator fields_end() const = 0; 140 virtual fields_iterator fields_end() const = 0;
141 141
142 virtual string append_query(const string& url) const; 142 virtual string append_query(const string& url) const;
143 virtual string query_string() const; 143 virtual string query_string() const;
144 144
145 145
146 virtual void reset_fields(); 146 virtual void reset_fields();
147 virtual void set_field(const string& n,const string& v); 147 virtual void set_field(const string& n,const string& v);
148 virtual void reset_field(const string& n); 148 virtual void reset_field(const string& n);
149 149
150 virtual void from_keyvalues(const string& kv); 150 virtual void from_keyvalues(const string& kv);
151 virtual void to_keyvalues(ostream& o) const; 151 virtual void to_keyvalues(ostream& o) const;
152 152
153 virtual void to_htmlhiddens(ostream& o,const char* pfx=0) const; 153 virtual void to_htmlhiddens(ostream& o,const char* pfx=0) const;
154 154
155 void add_to_signed(const string& fields); 155 void add_to_signed(const string& fields);
156 string find_ns(const string& uri,const char *pfx) const; 156 string find_ns(const string& uri,const char *pfx) const;
157 string allocate_ns(const string& uri,const char *pfx); 157 string allocate_ns(const string& uri,const char *pfx);
158 }; 158 };
159 159
160 class openid_message_t : public basic_openid_message, public map<string,string> { 160 class openid_message_t : public basic_openid_message, public map<string,string> {
161 public: 161 public:
162 openid_message_t() { } 162 openid_message_t() { }
163 openid_message_t(const basic_openid_message& x) 163 openid_message_t(const basic_openid_message& x)
164 : basic_openid_message(x) { } 164 : basic_openid_message(x) { }
165 165
166 void copy_to(basic_openid_message& x) const; 166 void copy_to(basic_openid_message& x) const;
167 167
168 bool has_field(const string& n) const; 168 bool has_field(const string& n) const;
169 const string& get_field(const string& n) const; 169 const string& get_field(const string& n) const;
170 virtual fields_iterator fields_begin() const; 170 virtual fields_iterator fields_begin() const;
171 virtual fields_iterator fields_end() const; 171 virtual fields_iterator fields_end() const;
172 172
173 void reset_fields(); 173 void reset_fields();
174 void set_field(const string& n,const string& v); 174 void set_field(const string& n,const string& v);
175 void reset_field(const string& n); 175 void reset_field(const string& n);
176 }; 176 };
177 177
178 /** 178 /**
179 * request/response parameters map 179 * request/response parameters map
180 */ 180 */
181 class params_t : public openid_message_t { 181 class params_t : public openid_message_t {
182 public: 182 public:
183 183
184 /** 184 /**
185 * check whether the parameter is present. 185 * check whether the parameter is present.
186 * @param n the parameter name 186 * @param n the parameter name
187 * @return true if yes 187 * @return true if yes
188 */ 188 */
189 bool has_param(const string& n) const { 189 bool has_param(const string& n) const {
190 return has_field(n); } 190 return has_field(n); }
191 /** 191 /**
192 * retrieve the parameter (const version) 192 * retrieve the parameter (const version)
193 * @param n the parameter name 193 * @param n the parameter name
194 * @return the parameter value 194 * @return the parameter value
195 * @throw failed_lookup if there is no such parameter 195 * @throw failed_lookup if there is no such parameter
196 */ 196 */
197 const string& get_param(const string& n) const { 197 const string& get_param(const string& n) const {
198 return get_field(n); } 198 return get_field(n); }
199 199
200 /** 200 /**
201 * parse the OpenID key/value data. 201 * parse the OpenID key/value data.
202 * @param kv the OpenID key/value data 202 * @param kv the OpenID key/value data
203 */ 203 */
204 void parse_keyvalues(const string& kv) { 204 void parse_keyvalues(const string& kv) {
205 from_keyvalues(kv); } 205 from_keyvalues(kv); }
206 206
207 string append_query(const string& url,const char *prefix="openid.") const; 207 string append_query(const string& url,const char *prefix="openid.") const;
208 208
209 }; 209 };
210 210
211 struct openid_endpoint_t { 211 struct openid_endpoint_t {
212 string uri; 212 string uri;
213 string claimed_id; 213 string claimed_id;
214 string local_id; 214 string local_id;
215 215
216 openid_endpoint_t() { } 216 openid_endpoint_t() { }
217 openid_endpoint_t(const string& u,const string& cid,const string& lid) 217 openid_endpoint_t(const string& u,const string& cid,const string& lid)
218 : uri(u), claimed_id(cid), local_id(lid) { } 218 : uri(u), claimed_id(cid), local_id(lid) { }
219 219
220 bool operator==(const openid_endpoint_t& x) const { 220 bool operator==(const openid_endpoint_t& x) const {
221 return uri==x.uri && local_id==x.local_id; } 221 return uri==x.uri && local_id==x.local_id; }
222 bool operator<(const openid_endpoint_t& x) const { 222 bool operator<(const openid_endpoint_t& x) const {
223 int c; 223 int c;
224 return (c=strcmp(uri.c_str(),x.uri.c_str())) 224 return (c=strcmp(uri.c_str(),x.uri.c_str()))
225 ? (c<0) : (strcmp(local_id.c_str(),x.local_id.c_str())<0); } 225 ? (c<0) : (strcmp(local_id.c_str(),x.local_id.c_str())<0); }
226 }; 226 };
227 227
228 typedef util::output_iterator_proxy<openid_endpoint_t>
229 openid_endpoint_output_iterator;
230
228} 231}
229 232
230#endif /* __OPKELE_TYPES_H */ 233#endif /* __OPKELE_TYPES_H */