summaryrefslogtreecommitdiffabout
path: root/include/opkele/consumer.h
Side-by-side diff
Diffstat (limited to 'include/opkele/consumer.h') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/consumer.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h
index 042e2d1..b9d1e54 100644
--- a/include/opkele/consumer.h
+++ b/include/opkele/consumer.h
@@ -10,12 +10,17 @@
*/
namespace opkele {
/**
* implementation of basic consumer functionality
+ *
+ * @note
+ * The consumer uses libcurl internally, which means that if you're using
+ * libopkele in multithreaded environment you should call curl_global_init
+ * yourself before spawning any threads.
*/
class consumer_t {
public:
/**
* store association. The function should be overridden in the real
@@ -28,16 +33,22 @@ namespace opkele {
*/
virtual assoc_t store_assoc(const string& server,const string& handle,const secret_t& secret,int expires_in) = 0;
/**
* retrieve stored association. The function should be overridden
* in the real implementation to provide persistent assocations
* store.
+ *
+ * @note
+ * The user is responsible for handling associations expiry and
+ * this function should never return an expired or invalidated
+ * association.
+ *
* @param server the OpenID server
* @param handle association handle
* @return the autho_ptr<> for the newly allocated association_t object
- * @throw failed_lookup in case of error
+ * @throw failed_lookup if no unexpired association found
*/
virtual assoc_t retrieve_assoc(const string& server,const string& handle) = 0;
/**
* invalidate stored association. The function should be overridden
* in the real implementation of the consumer.
* @param server the OpenID server
@@ -45,12 +56,18 @@ namespace opkele {
*/
virtual void invalidate_assoc(const string& server,const string& handle) = 0;
/**
* retrieve any unexpired association for the server. If the
* function is not overridden in the real implementation, the new
* association will be established for each request.
+ *
+ * @note
+ * The user is responsible for handling associations and this
+ * function should never return an expired or invalidated
+ * association.
+ *
* @param server the OpenID server
* @return the auto_ptr<> for the newly allocated association_t object
* @throw failed_lookup in case of absence of the handle
*/
virtual assoc_t find_assoc(const string& server);