summaryrefslogtreecommitdiffabout
path: root/include
Side-by-side diff
Diffstat (limited to 'include') (more/less context) (show whitespace changes)
-rw-r--r--include/opkele/association.h2
-rw-r--r--include/opkele/consumer.h19
2 files changed, 20 insertions, 1 deletions
diff --git a/include/opkele/association.h b/include/opkele/association.h
index a8f3915..72eff5b 100644
--- a/include/opkele/association.h
+++ b/include/opkele/association.h
@@ -58,11 +58,13 @@ namespace opkele {
virtual string server() const { return _server; }
virtual string handle() const { return _handle; }
virtual string assoc_type() const { return _assoc_type; }
virtual secret_t secret() const { return _secret; }
virtual int expires_in() const { return _expires-time(0); }
virtual bool stateless() const { return _stateless; }
+
+ virtual bool is_expired() const { return _expires<time(0); }
};
}
#endif /* __OPKELE_ASSOCIATION_H */
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);