From 5b0430fdf4617b396e462872d438a663b174a3a8 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 12 Oct 2012 17:24:44 +0200 Subject: Completion of prepared query support --- odb/prepared-query.hxx | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'odb/prepared-query.hxx') diff --git a/odb/prepared-query.hxx b/odb/prepared-query.hxx index 60ae48d..e4c9c2b 100644 --- a/odb/prepared-query.hxx +++ b/odb/prepared-query.hxx @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -22,12 +23,19 @@ namespace odb ~prepared_query_impl (); const char* name; + details::shared_ptr stmt; details::shared_ptr (*execute) (prepared_query_impl&); }; template struct prepared_query { + prepared_query () {} + + explicit + prepared_query (details::shared_ptr impl) + : impl_ (impl) {} + result execute (bool cache = true) { @@ -46,11 +54,29 @@ namespace odb return r; } - explicit - prepared_query (details::shared_ptr impl) - : impl_ (impl) {} + const char* + name () const + { + return impl_->name; + } + + typedef odb::statement statement_type; + + statement_type& + statement () const + { + return *impl_->stmt; + } + + typedef details::shared_ptr + prepared_query::*unspecified_bool_type; + operator unspecified_bool_type () const + { + return impl_ ? &prepared_query::impl_ : 0; + } private: + friend class connection; details::shared_ptr impl_; }; -- cgit v1.1