author | Michael Krelin <hacker@klever.net> | 2008-01-12 15:10:22 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-01-12 23:26:28 (UTC) |
commit | d0b30e379fc4032782776866fbb0adc6148ea023 (patch) (unidiff) | |
tree | 5433c44938b06bd55c26851555e821db326e1cd0 | |
parent | 7b5a82f255a85fe2ef466b68e40d9eb1829c633a (diff) | |
download | libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.zip libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.tar.gz libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.tar.bz2 |
fixed priority_map comparison function
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | include/opkele/types.h | 2 |
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 | |||
@@ -88,159 +88,159 @@ namespace opkele { | |||
88 | * retrieve the association secret. | 88 | * retrieve the association secret. |
89 | * @return association secret | 89 | * @return association secret |
90 | */ | 90 | */ |
91 | virtual secret_t secret() const = 0; | 91 | virtual secret_t secret() const = 0; |
92 | /** | 92 | /** |
93 | * retrieve the number of seconds the association expires in. | 93 | * retrieve the number of seconds the association expires in. |
94 | * @return seconds till expiration | 94 | * @return seconds till expiration |
95 | */ | 95 | */ |
96 | virtual int expires_in() const = 0; | 96 | virtual int expires_in() const = 0; |
97 | /** | 97 | /** |
98 | * check whether the association is stateless. | 98 | * check whether the association is stateless. |
99 | * @return true if stateless | 99 | * @return true if stateless |
100 | */ | 100 | */ |
101 | virtual bool stateless() const = 0; | 101 | virtual bool stateless() const = 0; |
102 | /** | 102 | /** |
103 | * check whether the association is expired. | 103 | * check whether the association is expired. |
104 | * @return true if expired | 104 | * @return true if expired |
105 | */ | 105 | */ |
106 | virtual bool is_expired() const = 0; | 106 | virtual bool is_expired() const = 0; |
107 | }; | 107 | }; |
108 | 108 | ||
109 | /** | 109 | /** |
110 | * the shared_ptr<> for association_t object type | 110 | * the shared_ptr<> for association_t object type |
111 | */ | 111 | */ |
112 | typedef tr1mem::shared_ptr<association_t> assoc_t; | 112 | typedef tr1mem::shared_ptr<association_t> assoc_t; |
113 | 113 | ||
114 | /** | 114 | /** |
115 | * request/response parameters map | 115 | * request/response parameters map |
116 | */ | 116 | */ |
117 | class params_t : public map<string,string> { | 117 | class params_t : public map<string,string> { |
118 | public: | 118 | public: |
119 | 119 | ||
120 | /** | 120 | /** |
121 | * check whether the parameter is present. | 121 | * check whether the parameter is present. |
122 | * @param n the parameter name | 122 | * @param n the parameter name |
123 | * @return true if yes | 123 | * @return true if yes |
124 | */ | 124 | */ |
125 | bool has_param(const string& n) const; | 125 | bool has_param(const string& n) const; |
126 | /** | 126 | /** |
127 | * retrieve the parameter (const version) | 127 | * retrieve the parameter (const version) |
128 | * @param n the parameter name | 128 | * @param n the parameter name |
129 | * @return the parameter value | 129 | * @return the parameter value |
130 | * @throw failed_lookup if there is no such parameter | 130 | * @throw failed_lookup if there is no such parameter |
131 | */ | 131 | */ |
132 | const string& get_param(const string& n) const; | 132 | const string& get_param(const string& n) const; |
133 | /** | 133 | /** |
134 | * retrieve the parameter. | 134 | * retrieve the parameter. |
135 | * @param n the parameter name | 135 | * @param n the parameter name |
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 | } |
233 | bool empty() const { | 233 | bool empty() const { |
234 | return | 234 | return |
235 | canonical_ids.empty() | 235 | canonical_ids.empty() |
236 | && local_ids.empty() | 236 | && local_ids.empty() |
237 | && services.empty(); | 237 | && services.empty(); |
238 | } | 238 | } |
239 | 239 | ||
240 | }; | 240 | }; |
241 | 241 | ||
242 | } | 242 | } |
243 | 243 | ||
244 | } | 244 | } |
245 | 245 | ||
246 | #endif /* __OPKELE_TYPES_H */ | 246 | #endif /* __OPKELE_TYPES_H */ |