From f5eb33d7a9c296e3fa7bde9b678f0e1027a9bf88 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Thu, 11 Jan 2007 23:52:29 +0000 Subject: extension chain --- (limited to 'include') diff --git a/include/Makefile.am b/include/Makefile.am index 4b9b02a..2c190b8 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -7,7 +7,8 @@ nobase_include_HEADERS = \ opkele/server.h \ opkele/consumer.h \ opkele/extension.h \ - opkele/sreg.h + opkele/sreg.h \ + opkele/extension_chain.h EXTRA_DIST = \ opkele/data.h \ opkele/util.h diff --git a/include/opkele/extension_chain.h b/include/opkele/extension_chain.h new file mode 100644 index 0000000..955f4d5 --- a/dev/null +++ b/include/opkele/extension_chain.h @@ -0,0 +1,50 @@ +#ifndef __OPKELE_EXTENSION_CHAIN_H +#define __OPKELE_EXTENSION_CHAIN_H + +/** + * @file + * @brief extension chain extension + */ + +#include +#include + +/** + * @brief the main opkele namespace + */ +namespace opkele { + using std::list; + + /** + * OpenID extensions chain used to combine extensions, it is actually an + * stl list of pointers to extensions. + */ + class extension_chain_t : public extension_t, public list { + public: + + /** + * Default constructor creates an empty chain + */ + extension_chain_t() { } + /** + * Create extension chain with a single extension in it + */ + extension_chain_t(extension_t *e) { push_back(e); } + + /** + * Implementation of consumer's checkid hook + */ + virtual void checkid_hook(params_t& p,const string& identity); + /** + * Implementation of consumer's id_res hook + */ + virtual void id_res_hook(const params_t& p,const params_t& sp,const string& identity); + /** + * Implementation of server's checkid_hook + */ + virtual void checkid_hook(const params_t& pin,params_t& pout); + }; + +} + +#endif /* __OPKELE_EXTENSION_CHAIN_H */ -- cgit v0.9.0.2