# pqxx::internal Namespace Reference
[String conversion]

Private namespace for libpqxx's internal use; do not access. More...

## Namespaces
namespace | pq
| Forward declarations of libpq types as needed in libpqxx headers.

## Classes
class | reactivation_avoidance_counter
class | reactivation_avoidance_exemption
| Scoped exemption to reactivation avoidance. More...
class | sql_cursor
| Cursor with SQL positioning semantics. More...
struct | result_data
| Information shared between all copies of a result set. More...
class | Escaper
class | transactionfocus
struct | dereference
| Functor: dereference iterator. More...
struct | deref_ptr
class | refcount
| Helper class used in reference counting (doubly-linked circular list). More...
class | PQAlloc
| Reference-counted smart pointer to libpq-allocated object. More...
class | scoped_array
class | namedclass
class | unique
| Ensure proper opening/closing of GUEST objects related to a "host" object. More...
## Typedefs
typedef unsigned long | result_size_type
typedef long | result_difference_type
typedef const char * | cstring
| Work around problem with library export directives and pointers.
## Functions
template<typename T >
ptrdiff_t | distance (T first, T last)
| Wrapper for std::distance; not all platforms have std::distance().
void | wait_read (const internal::pq::PGconn *)
void | wait_read (const internal::pq::PGconn *, long seconds, long microseconds)
void | wait_write (const internal::pq::PGconn *)
result::size_type | obtain_stateless_cursor_size (sql_cursor &)
result | stateless_cursor_retrieve (sql_cursor &, result::difference_type size, result::difference_type begin_pos, result::difference_type end_pos)
void | freemem_result_data (result_data *) throw ()
std::string | Escape (const std::string &s, const std::string &null)
template<typename STR >
std::string | EscapeAny (const std::string &s, const std::string &null)
template<typename STR >
std::string | EscapeAny (const char s[], const std::string &null)
template<typename T >
std::string | EscapeAny (const T &t, const std::string &null)
void | throw_null_conversion (const std::string &type)
| Throw exception for attempt to convert null to given type.
int | digit_to_number (char c) throw ()
| Compute numeric value of given textual digit (assuming that it is a digit).
char | number_to_digit (int i) throw ()
void | freepqmem (void *)
void | freemem_notif (pq::PGnotify *) throw ()
void | CheckUniqueRegistration (const namedclass *New, const namedclass *Old)
void | CheckUniqueUnregistration (const namedclass *New, const namedclass *Old)
void | sleep_seconds (int)
| Sleep for the given number of seconds.
cstring | strerror_wrapper (int err, char buf[], std::size_t len) throw ()
| Human-readable description for error code, possibly using given buffer.
## Variables
const char | sql_begin_work [] = "BEGIN"
| Commonly used SQL commands.
const char | sql_commit_work [] = "COMMIT"
const char | sql_rollback_work [] = "ROLLBACK"

## Detailed Description

Private namespace for libpqxx's internal use; do not access.

This namespace hides definitions internal to libpqxx. These are not supposed to be used by client programs, and they may change at any time without notice.

Conversely, if you find something in this namespace tremendously useful, by all means do lodge a request for its publication.

Warning:
  Here be dragons!

## Typedef Documentation

typedef const char* pqxx::internal::cstring

Work around problem with library export directives and pointers.

typedef long pqxx::internal::result_difference_type

typedef unsigned long pqxx::internal::result_size_type

## Function Documentation

void pqxx::internal::CheckUniqueRegistration | ( | const namedclass * | New,
|  | const namedclass * | Old |
| ) |  |  |

References pqxx::internal::namedclass::description().

Referenced by pqxx::internal::unique< internal::transactionfocus >::Register().

void pqxx::internal::CheckUniqueUnregistration | ( | const namedclass * | New,
|  | const namedclass * | Old |
| ) |  |  |

References pqxx::internal::namedclass::description().

Referenced by pqxx::internal::unique< internal::transactionfocus >::Unregister().

int pqxx::internal::digit_to_number | ( | char | c | ) | throw ()

Compute numeric value of given textual digit (assuming that it is a digit).

template<typename T >

ptrdiff_t pqxx::internal::distance | ( | T | first,
|  | T | last |
| ) |  |  |

Wrapper for std::distance; not all platforms have std::distance().

string pqxx::internal::Escape | ( | const std::string & | s,
|  | const std::string & | null |
| ) |  |  |

Referenced by EscapeAny().

template<typename T >

std ::string pqxx::internal::EscapeAny | ( | const T & | t,
|  | const std::string & | null |
| ) |  |  |

References Escape(), and pqxx::to_string().

template<typename STR >

std ::string pqxx::internal::EscapeAny | ( | const char | s[],
|  | const std::string & | null |
| ) |  |  |

References Escape().

template<typename STR >

std ::string pqxx::internal::EscapeAny | ( | const std::string & | s,
|  | const std::string & | null |
| ) |  |  |

References Escape().

Referenced by pqxx::internal::Escaper< IT >::operator()().

void pqxx::internal::freemem_notif | ( | pq::PGnotify * | p | ) | throw ()

References freepqmem().

Referenced by pqxx::internal::PQAlloc< T >::freemem().

void pqxx::internal::freemem_result_data | ( | result_data * | d | ) | throw ()

Referenced by pqxx::internal::PQAlloc< T >::freemem().

void pqxx::internal::freepqmem | ( | void * | p | ) |

Referenced by freemem_notif().

char pqxx::internal::number_to_digit | ( | int | i | ) | throw ()

result::size_type pqxx::internal::obtain_stateless_cursor_size | ( | sql_cursor & | cur | ) |

References pqxx::cursor_base::all(), pqxx::internal::sql_cursor::endpos(), and pqxx::internal::sql_cursor::move().

Referenced by pqxx::stateless_cursor< up, op >::size().

void pqxx::internal::sleep_seconds | ( | int | s | ) |

Sleep for the given number of seconds.

May return early, e.g. when interrupted by a signal. Completes instantly if a zero or negative sleep time is requested.

References pqxx::to_string().

result pqxx::internal::stateless_cursor_retrieve | ( | sql_cursor & | cur,
|  | result::difference_type | size,
|  | result::difference_type | begin_pos,
|  | result::difference_type | end_pos |
| ) |  |  |

References pqxx::internal::sql_cursor::empty_result(), pqxx::internal::sql_cursor::fetch(), pqxx::internal::sql_cursor::move(), and pqxx::internal::sql_cursor::pos().

Referenced by pqxx::stateless_cursor< up, op >::retrieve().

cstring pqxx::internal::strerror_wrapper | ( | int | err,
|  | char | buf[],
|  | std::size_t | len |
| ) |  |  | throw ()

Human-readable description for error code, possibly using given buffer.

Wrapper for `strerror()` or `strerror_r()`, as available. The normal case is to copy the string to the provided buffer, but this may not always be the case. The result is guaranteed to remain usable for as long as the given buffer does.

Parameters:

  | err | system error code as copied from errno
  | buf | caller-provided buffer for message to be stored in, if needed
  | len | usable size (in bytes) of provided buffer

Returns:
  human-readable error string, which may or may not reside in buf

Referenced by pqxx::largeobject::Reason().

void pqxx::internal::throw_null_conversion | ( | const std::string & | type | ) |

Throw exception for attempt to convert null to given type.

Referenced by pqxx::string_traits< std::stringstream >::null(), and pqxx::string_traits< std::string >::null().

void pqxx::internal::wait_read | ( | const internal::pq::PGconn * | c,
|  | long | seconds,
|  | long | microseconds |
| ) |  |  |

void pqxx::internal::wait_read | ( | const internal::pq::PGconn * | c | ) |

Referenced by pqxx::connect_async::do_completeconnect().

void pqxx::internal::wait_write | ( | const internal::pq::PGconn * | c | ) |

Referenced by pqxx::connect_async::do_completeconnect().

## Variable Documentation

const char pqxx::internal::sql_begin_work = "BEGIN"

Commonly used SQL commands.

const char pqxx::internal::sql_commit_work = "COMMIT"

const char pqxx::internal::sql_rollback_work = "ROLLBACK"

Referenced by pqxx::dbtransaction::do_abort().