14 #include "pqxx/compiler-public.hxx" 25 #include "pqxx/strconv.hxx" 31 #include <pqxx/internal/libpq-forward.hxx> 45 bool have_safe_strerror =
true;
58 bool safe_query_cancel =
true;
61 bool safe_result_copy =
true;
99 template<typename ITER, typename ACCESS> inline
101 const
std::
string &sep,
110 for (++begin; begin != end; ++begin)
121 template<
typename ITER>
inline std::string
123 {
return separated_list(sep, begin, end, [](ITER i){
return *i; }); }
127 template<
typename CONTAINER>
inline std::string
145 PQXX_LIBEXPORT
void freepqmem(
const void *) noexcept;
175 m_classname(Classname),
180 namedclass(
const std::string &Classname,
const std::string &Name) :
181 m_classname(Classname),
187 const std::string &
name() const noexcept {
return m_name; }
191 {
return m_classname; }
194 std::string description()
const;
197 std::string m_classname, m_name;
211 template<
typename GUEST>
219 GUEST *
get()
const noexcept {
return m_guest; }
223 CheckUniqueRegistration(G, m_guest);
229 CheckUniqueUnregistration(G, m_guest);
234 GUEST *m_guest =
nullptr;
void freemallocmem(const void *) noexcept
Definition: util.cxx:109
Result set containing data returned by a query or command.
Definition: result.hxx:65
const std::string & classname() const noexcept
Class name.
Definition: util.hxx:190
std::string to_string(const field &Obj)
Convert a field to a string.
Definition: result.cxx:434
std::string separated_list(const std::string &sep, ITER begin, ITER end, ACCESS access)
Represent sequence of values as a separated string.
Definition: util.hxx:100
Ensure proper opening/closing of GUEST objects related to a "host" object.
Definition: util.hxx:212
void register_guest(GUEST *G)
Definition: util.hxx:221
bool safe_libpq
Is the underlying libpq build thread-safe?
Definition: util.hxx:55
namedclass(const std::string &Classname)
Definition: util.hxx:174
void sleep_seconds(int)
Sleep for the given number of seconds.
Definition: util.cxx:115
constexpr char sql_rollback_work[]
Definition: util.hxx:252
thread_safety_model describe_thread_safety() noexcept
Describe thread safety available in this build.
Definition: util.cxx:28
const char * cstring
Work around problem with library export directives and pointers.
Definition: util.hxx:245
const std::string & name() const noexcept
Object name, or the empty string if no name was given.
Definition: util.hxx:187
void CheckUniqueRegistration(const namedclass *New, const namedclass *Old)
Definition: util.cxx:69
constexpr char sql_commit_work[]
Definition: util.hxx:251
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:22
constexpr char sql_begin_work[]
Commonly used SQL commands.
Definition: util.hxx:250
Helper base class: object descriptions for error messages and such.
Definition: util.hxx:171
constexpr oid oid_none
The "null" oid.
Definition: util.hxx:82
bool safe_kerberos
Is Kerberos thread-safe?
Definition: util.hxx:70
void unregister_guest(GUEST *G)
Definition: util.hxx:227
Descriptor of library's thread-safety model.
Definition: util.hxx:42
void CheckUniqueUnregistration(const namedclass *New, const namedclass *Old)
Definition: util.cxx:85
void freemallocmem_templated(P *p) noexcept
Definition: util.hxx:152
namedclass(const std::string &Classname, const std::string &Name)
Definition: util.hxx:180
void freepqmem(const void *) noexcept
Definition: util.cxx:103
void freepqmem_templated(P *p) noexcept
Definition: util.hxx:146
std::string description
A human-readable description of any thread-safety issues.
Definition: util.hxx:73
void ignore_unused(T)
Suppress compiler warning about an unused item.
Definition: util.hxx:37