diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-10 11:07:43 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-21 15:40:00 +0200 |
commit | c31fc72be48b037fff1cc2b46a812d20d4b601c4 (patch) | |
tree | 574161b9c1db69b88ca1e439e2ca8a44f405dc27 /odb/relational/mysql/context.hxx | |
parent | a98ab50a31b57d609588ad13c39e8819c3cd0f9e (diff) |
Cache current context in static variable
Diffstat (limited to 'odb/relational/mysql/context.hxx')
-rw-r--r-- | odb/relational/mysql/context.hxx | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/odb/relational/mysql/context.hxx b/odb/relational/mysql/context.hxx index a54803d..159fe46 100644 --- a/odb/relational/mysql/context.hxx +++ b/odb/relational/mysql/context.hxx @@ -101,26 +101,29 @@ namespace relational string const& type, semantics::context&, column_type_flags); - private: - struct data: base_context::data - { - data (std::ostream& os): base_context::data (os) {} - }; - - private: - data* data_; public: + virtual + ~context (); + context (); + context (std::ostream&, semantics::unit&, options_type const&); + static context& current () { - return dynamic_cast<context&> (base_context::current ()); + return *current_; } - context (std::ostream&, semantics::unit&, options_type const&); + private: + static context* current_; - protected: - context (); + private: + struct data: base_context::data + { + data (std::ostream& os): base_context::data (os) {} + }; + + data* data_; }; } } |