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.h39
1 files changed, 24 insertions, 15 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index ffb9afb..f63bf5d 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -118,36 +118,47 @@ 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_fields {
122 public: 122 public:
123 typedef list<string> fields_t;
124 typedef util::forward_iterator_proxy< 123 typedef util::forward_iterator_proxy<
125 string,const string&,const string* 124 string,const string&,const string*
126 > fields_iterator; 125 > fields_iterator;
127 126
128 basic_openid_message() { } 127 basic_fields() { }
129 virtual ~basic_openid_message() { } 128 virtual ~basic_fields() { }
130 basic_openid_message(const basic_openid_message& x); 129 basic_fields(const basic_fields& x);
131 void copy_to(basic_openid_message& x) const; 130 void copy_to(basic_fields& x) const;
132 void append_to(basic_openid_message& x) const; 131 void append_to(basic_fields& x) const;
133 132
134 virtual bool has_field(const string& n) const = 0; 133 virtual bool has_field(const string& n) const = 0;
135 virtual const string& get_field(const string& n) const = 0; 134 virtual const string& get_field(const string& n) const = 0;
136 135
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; 136 virtual fields_iterator fields_begin() const = 0;
141 virtual fields_iterator fields_end() const = 0; 137 virtual fields_iterator fields_end() const = 0;
142 138
143 virtual string append_query(const string& url,const char *pfx="openid.") const; 139 virtual string append_query(const string& url,const char *pfx=0) const;
144 virtual string query_string(const char *pfx="openid.") const; 140 virtual string query_string(const char *pfx=0) const;
145
146 141
147 virtual void reset_fields(); 142 virtual void reset_fields();
148 virtual void set_field(const string& n,const string& v); 143 virtual void set_field(const string& n,const string& v);
149 virtual void reset_field(const string& n); 144 virtual void reset_field(const string& n);
150 145
146 };
147
148 class basic_openid_message : public basic_fields {
149 public:
150
151 basic_openid_message() { }
152 basic_openid_message(const basic_openid_message& x);
153
154 virtual bool has_ns(const string& uri) const;
155 virtual string get_ns(const string& uri) const;
156
157 virtual string append_query(const string& url,const char *pfx="openid.") const {
158 return basic_fields::append_query(url,pfx); }
159 virtual string query_string(const char *pfx="openid.") const {
160 return basic_fields::query_string(pfx); }
161
151 virtual void from_keyvalues(const string& kv); 162 virtual void from_keyvalues(const string& kv);
152 virtual void to_keyvalues(ostream& o) const; 163 virtual void to_keyvalues(ostream& o) const;
153 164
@@ -164,8 +175,6 @@ namespace opkele {
164 openid_message_t(const basic_openid_message& x) 175 openid_message_t(const basic_openid_message& x)
165 : basic_openid_message(x) { } 176 : basic_openid_message(x) { }
166 177
167 void copy_to(basic_openid_message& x) const;
168
169 bool has_field(const string& n) const; 178 bool has_field(const string& n) const;
170 const string& get_field(const string& n) const; 179 const string& get_field(const string& n) const;
171 virtual fields_iterator fields_begin() const; 180 virtual fields_iterator fields_begin() const;