summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-01-12 15:10:22 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-12 23:26:28 (UTC)
commitd0b30e379fc4032782776866fbb0adc6148ea023 (patch) (unidiff)
tree5433c44938b06bd55c26851555e821db326e1cd0
parent7b5a82f255a85fe2ef466b68e40d9eb1829c633a (diff)
downloadlibopkele-d0b30e379fc4032782776866fbb0adc6148ea023.zip
libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.tar.gz
libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.tar.bz2
fixed priority_map comparison function
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--include/opkele/types.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index 4e1415f..de44a5c 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -136,97 +136,97 @@ namespace opkele {
136 * @return the parameter value 136 * @return the parameter value
137 * @throw failed_lookup if there is no such parameter 137 * @throw failed_lookup if there is no such parameter
138 */ 138 */
139 string& get_param(const string& n); 139 string& get_param(const string& n);
140 140
141 /** 141 /**
142 * parse the OpenID key/value data. 142 * parse the OpenID key/value data.
143 * @param kv the OpenID key/value data 143 * @param kv the OpenID key/value data
144 */ 144 */
145 void parse_keyvalues(const string& kv); 145 void parse_keyvalues(const string& kv);
146 /** 146 /**
147 * sign the fields. 147 * sign the fields.
148 * @param secret the secret used for signing 148 * @param secret the secret used for signing
149 * @param sig reference to the string, containing base64-encoded 149 * @param sig reference to the string, containing base64-encoded
150 * result 150 * result
151 * @param slist the comma-separated list of fields to sign 151 * @param slist the comma-separated list of fields to sign
152 * @param prefix the string to prepend to parameter names 152 * @param prefix the string to prepend to parameter names
153 */ 153 */
154 void sign(secret_t secret,string& sig,const string& slist,const char *prefix=0) const; 154 void sign(secret_t secret,string& sig,const string& slist,const char *prefix=0) const;
155 155
156 /** 156 /**
157 * append parameters to the URL as a GET-request parameters. 157 * append parameters to the URL as a GET-request parameters.
158 * @param url the base URL 158 * @param url the base URL
159 * @param prefix the string to prepend to parameter names 159 * @param prefix the string to prepend to parameter names
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) ? true : (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 string provider_id;
209 209
210 void clear() { 210 void clear() {
211 types.clear(); 211 types.clear();
212 uris.clear(); local_ids.clear(); 212 uris.clear(); local_ids.clear();
213 provider_id.clear(); 213 provider_id.clear();
214 } 214 }
215 }; 215 };
216 typedef priority_map<service_t> services_t; 216 typedef priority_map<service_t> services_t;
217 217
218 class XRD_t { 218 class XRD_t {
219 public: 219 public:
220 time_t expires; 220 time_t expires;
221 221
222 canonical_ids_t canonical_ids; 222 canonical_ids_t canonical_ids;
223 local_ids_t local_ids; 223 local_ids_t local_ids;
224 services_t services; 224 services_t services;
225 string provider_id; 225 string provider_id;
226 226
227 void clear() { 227 void clear() {
228 expires = 0; 228 expires = 0;
229 canonical_ids.clear(); local_ids.clear(); 229 canonical_ids.clear(); local_ids.clear();
230 services.clear(); 230 services.clear();
231 provider_id.clear(); 231 provider_id.clear();
232 } 232 }