summaryrefslogtreecommitdiffabout
path: root/include/opkele
authorMichael Krelin <hacker@klever.net>2007-12-30 21:08:55 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-04 18:22:43 (UTC)
commitb7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97 (patch) (unidiff)
treec898f449b4238a239f491a62bd77ac7c75663bb1 /include/opkele
parent4b75ac58aa9baaf611df8ef694fd585529823c66 (diff)
downloadlibopkele-b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97.zip
libopkele-b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97.tar.gz
libopkele-b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97.tar.bz2
parse ProviderID while doing discovery
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'include/opkele') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/types.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index d959021..4e1415f 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -160,83 +160,87 @@ namespace opkele {
160 * @return the ready-to-use location 160 * @return the ready-to-use location
161 */ 161 */
162 string append_query(const string& url,const char *prefix = "openid.") const; 162 string append_query(const string& url,const char *prefix = "openid.") const;
163 163
164 /** 164 /**
165 * make up a query string suitable for use in GET and POST 165 * make up a query string suitable for use in GET and POST
166 * requests. 166 * requests.
167 * @param prefix string to prened to parameter names 167 * @param prefix string to prened to parameter names
168 * @return query string 168 * @return query string
169 */ 169 */
170 string query_string(const char *prefix = "openid.") const; 170 string query_string(const char *prefix = "openid.") const;
171 }; 171 };
172 172
173 /** 173 /**
174 * dump the key/value pairs for the parameters to the stream. 174 * dump the key/value pairs for the parameters to the stream.
175 * @param o output stream 175 * @param o output stream
176 * @param p the parameters 176 * @param p the parameters
177 */ 177 */
178 ostream& operator << (ostream& o,const params_t& p); 178 ostream& operator << (ostream& o,const params_t& p);
179 179
180 namespace xrd { 180 namespace xrd {
181 181
182 struct priority_compare { 182 struct priority_compare {
183 inline bool operator()(long a,long b) const { 183 inline bool operator()(long a,long b) const {
184 return (a<0) ? false : (b<0) ? false : (a<b); 184 return (a<0) ? false : (b<0) ? false : (a<b);
185 } 185 }
186 }; 186 };
187 187
188 template <typename _DT> 188 template <typename _DT>
189 class priority_map : public multimap<long,_DT,priority_compare> { 189 class priority_map : public multimap<long,_DT,priority_compare> {
190 typedef multimap<long,_DT,priority_compare> map_type; 190 typedef multimap<long,_DT,priority_compare> map_type;
191 public: 191 public:
192 192
193 inline _DT& add(long priority,const _DT& d) { 193 inline _DT& add(long priority,const _DT& d) {
194 return insert(typename map_type::value_type(priority,d))->second; 194 return insert(typename map_type::value_type(priority,d))->second;
195 } 195 }
196 }; 196 };
197 197
198 typedef priority_map<string> canonical_ids_t; 198 typedef priority_map<string> canonical_ids_t;
199 typedef priority_map<string> local_ids_t; 199 typedef priority_map<string> local_ids_t;
200 typedef set<string> types_t; 200 typedef set<string> types_t;
201 typedef priority_map<string> uris_t; 201 typedef priority_map<string> uris_t;
202 202
203 class service_t { 203 class service_t {
204 public: 204 public:
205 types_t types; 205 types_t types;
206 uris_t uris; 206 uris_t uris;
207 local_ids_t local_ids; 207 local_ids_t local_ids;
208 string provider_id;
208 209
209 void clear() { 210 void clear() {
210 types.clear(); 211 types.clear();
211 uris.clear(); local_ids.clear(); 212 uris.clear(); local_ids.clear();
213 provider_id.clear();
212 } 214 }
213 }; 215 };
214 typedef priority_map<service_t> services_t; 216 typedef priority_map<service_t> services_t;
215 217
216 class XRD_t { 218 class XRD_t {
217 public: 219 public:
218 time_t expires; 220 time_t expires;
219 221
220 canonical_ids_t canonical_ids; 222 canonical_ids_t canonical_ids;
221 local_ids_t local_ids; 223 local_ids_t local_ids;
222 services_t services; 224 services_t services;
225 string provider_id;
223 226
224 void clear() { 227 void clear() {
225 expires = 0; 228 expires = 0;
226 canonical_ids.clear(); local_ids.clear(); 229 canonical_ids.clear(); local_ids.clear();
227 services.clear(); 230 services.clear();
231 provider_id.clear();
228 } 232 }
229 bool empty() const { 233 bool empty() const {
230 return 234 return
231 canonical_ids.empty() 235 canonical_ids.empty()
232 && local_ids.empty() 236 && local_ids.empty()
233 && services.empty(); 237 && services.empty();
234 } 238 }
235 239
236 }; 240 };
237 241
238 } 242 }
239 243
240} 244}
241 245
242#endif /* __OPKELE_TYPES_H */ 246#endif /* __OPKELE_TYPES_H */