// file : libcommon/common/common.hxx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef LIBCOMMON_COMMON_COMMON_HXX #define LIBCOMMON_COMMON_COMMON_HXX #include // std::auto_ptr #include // std::size_t #include // odb::database #include #include #include // Make sure assert() is not diabled. // #ifdef NDEBUG # error ODB tests require enabled assert(); un-define the NDEBUG macro #endif LIBCOMMON_EXPORT std::auto_ptr create_database (int& argc, char* argv[], bool create_schema = true, std::size_t max_connections = 0); // This function returns an accurate result only if the result iterator // hasn't been advanced. // template std::size_t size (odb::result& r) { std::size_t n (0); #if defined(DATABASE_SQLITE) for (typename odb::result::iterator i (r.begin ()); i != r.end (); ++i) n++; #else n = r.size (); #endif return n; } #endif // LIBCOMMON_COMMON_COMMON_HXX