Kea 2.5.8
|
Supports exchanging IPv4 leases with PostgreSQL. More...
Public Member Functions | |
PgSqlLease4Exchange () | |
Constructor. | |
Lease4Ptr | convertFromDatabase (const PgSqlResult &r, int row) |
Creates a Lease4 object from a given row in a result set. | |
void | createBindForSend (const Lease4Ptr &lease, PsqlBindArray &bind_array) |
Creates the bind array for sending Lease4 data to the database. | |
Public Member Functions inherited from isc::dhcp::PgSqlLeaseExchange | |
PgSqlLeaseExchange () | |
virtual | ~PgSqlLeaseExchange () |
Public Member Functions inherited from isc::db::PgSqlExchange | |
PgSqlExchange (const size_t num_columns=0) | |
Constructor. | |
virtual | ~PgSqlExchange () |
Destructor. | |
Additional Inherited Members | |
Static Public Member Functions inherited from isc::db::PgSqlExchange | |
static void | convertFromBytea (const PgSqlResult &r, const int row, const size_t col, std::vector< uint8_t > &value) |
Converts a column in a row in a result set to a binary bytes. | |
static void | convertFromBytea (const PgSqlResult &r, const int row, const size_t col, uint8_t *buffer, const size_t buffer_size, size_t &bytes_converted) |
Converts a column in a row in a result set to a binary bytes. | |
static time_t | convertFromDatabaseTime (const std::string &db_time_val) |
Converts time stamp from the database to a time_t. | |
static void | convertFromDatabaseTime (const std::string &db_time_val, boost::posix_time::ptime &conv_time) |
Converts time stamp from the database to a boost::posix::ptime. | |
static std::string | convertLocalToDatabaseTime (const time_t input_time) |
Converts local time_t value to a text representation in local time. | |
static std::string | convertToDatabaseTime (const time_t cltt, const uint32_t valid_lifetime) |
Converts lease expiration time to a text representation in local time. | |
static std::string | convertToDatabaseTime (const time_t input_time) |
Converts UTC time_t value to a text representation in local time. | |
static std::string | dumpRow (const PgSqlResult &r, int row) |
Diagnostic tool which dumps the Result row contents as a string. | |
static std::string | getColumnLabel (const PgSqlResult &r, const size_t col) |
Fetches the name of the column in a result set. | |
static void | getColumnValue (const PgSqlResult &r, const int row, const size_t col, bool &value) |
Fetches boolean text ('t' or 'f') as a bool. | |
static void | getColumnValue (const PgSqlResult &r, const int row, const size_t col, boost::posix_time::ptime &value) |
Fetches a timestamp column as a ptime. | |
static void | getColumnValue (const PgSqlResult &r, const int row, const size_t col, data::ElementPtr &value) |
Fetches a JSON column as an ElementPtr. | |
static void | getColumnValue (const PgSqlResult &r, const int row, const size_t col, std::string &value) |
Fetches text column value as a string. | |
template<typename T > | |
static void | getColumnValue (const PgSqlResult &r, const int row, const size_t col, T &value) |
Fetches a text column as the given value type. | |
static void | getColumnValue (const PgSqlResult &r, const int row, const size_t col, uint8_t &value) |
Fetches an integer text column as a uint8_t. | |
static isc::asiolink::IOAddress | getInetValue4 (const PgSqlResult &r, const int row, const size_t col) |
Converts a column in a row in a result set into IPv4 address. | |
static isc::asiolink::IOAddress | getInetValue6 (const PgSqlResult &r, const int row, const size_t col) |
Converts a column in a row in a result set into IPv6 address. | |
static isc::asiolink::IOAddress | getIPv6Value (const PgSqlResult &r, const int row, const size_t col) |
Converts a column in a row in a result set into IPv6 address. | |
static const char * | getRawColumnValue (const PgSqlResult &r, const int row, const size_t col) |
Gets a pointer to the raw column value in a result set row. | |
static isc::util::Triplet< uint32_t > | getTripletValue (const PgSqlResult &r, const int row, const size_t col) |
Fetches a uint32_t value into a Triplet using a single column value. | |
static isc::util::Triplet< uint32_t > | getTripletValue (const PgSqlResult &r, const int row, const size_t def_col, const size_t min_col, const size_t max_col) |
Fetches a uint32_t value into a Triplet using a three column values: default, minimum, and maximum. | |
static bool | isColumnNull (const PgSqlResult &r, const int row, const size_t col) |
Returns true if a column within a row is null. | |
Protected Attributes inherited from isc::dhcp::PgSqlLeaseExchange | |
std::vector< uint8_t > | addr_bin_ |
std::string | addr_str_ |
Common Instance members used for binding and conversion. | |
time_t | cltt_ |
time_t | expire_ |
std::string | expire_str_ |
bool | fqdn_fwd_ |
bool | fqdn_rev_ |
std::string | hostname_ |
std::vector< uint8_t > | hwaddr_ |
uint8_t | hwaddr_buffer_ [HWAddr::MAX_HWADDR_LEN] |
size_t | hwaddr_length_ |
uint32_t | pool_id_ |
std::string | pool_id_str_ |
std::string | state_str_ |
uint32_t | subnet_id_ |
std::string | subnet_id_str_ |
std::string | user_context_ |
uint32_t | valid_lifetime_ |
std::string | valid_lifetime_str_ |
Protected Attributes inherited from isc::db::PgSqlExchange | |
std::vector< std::string > | columns_ |
Stores text labels for columns, currently only used for logging and errors. | |
Supports exchanging IPv4 leases with PostgreSQL.
Definition at line 685 of file pgsql_lease_mgr.cc.
|
inline |
Constructor.
Definition at line 714 of file pgsql_lease_mgr.cc.
References isc::db::PgSqlExchange::columns_, and isc::dhcp::PgSqlLeaseExchange::hwaddr_buffer_.
|
inline |
Creates a Lease4 object from a given row in a result set.
r | result set containing one or rows from the Lease4 table |
row | row number within the result set from to create the Lease4 object. |
DbOperationError | if the lease cannot be created. |
Definition at line 852 of file pgsql_lease_mgr.cc.
References isc::dhcp::PgSqlLeaseExchange::cltt_, isc::db::PgSqlExchange::convertFromBytea(), isc::db::PgSqlExchange::convertFromDatabaseTime(), isc::dhcp::PgSqlLeaseExchange::expire_, isc::dhcp::PgSqlLeaseExchange::fqdn_fwd_, isc::dhcp::PgSqlLeaseExchange::fqdn_rev_, isc::data::Element::fromJSON(), isc::db::PgSqlExchange::getColumnValue(), isc::db::PgSqlExchange::getRawColumnValue(), isc::dhcp::PgSqlLeaseExchange::hostname_, isc::dhcp::HTYPE_ETHER, isc::dhcp::PgSqlLeaseExchange::hwaddr_buffer_, isc::dhcp::PgSqlLeaseExchange::hwaddr_length_, isc::dhcp::Lease::INFINITY_LFT, isc_throw, isc::data::Element::map, isc::dhcp::PgSqlLeaseExchange::pool_id_, isc::dhcp::PgSqlLeaseExchange::subnet_id_, isc::dhcp::PgSqlLeaseExchange::user_context_, isc::dhcp::PgSqlLeaseExchange::valid_lifetime_, and isc::Exception::what().
|
inline |
Creates the bind array for sending Lease4 data to the database.
Converts each Lease4 member into the appropriate form and adds it to the bind array. Note that the array additions must occur in the order the columns are specified in the SQL statement. By convention all columns in the table are explicitly listed in the SQL statement(s) in the same order as they occur in the table.
lease | Lease4 object that is to be written to the database | |
[out] | bind_array | array to populate with the lease data values |
DbOperationError | if bind_array cannot be populated. |
Definition at line 754 of file pgsql_lease_mgr.cc.
References isc::db::PsqlBindArray::add(), isc::db::PsqlBindArray::addNull(), isc::dhcp::PgSqlLeaseExchange::addr_str_, isc::db::PgSqlExchange::convertToDatabaseTime(), isc::dhcp::PgSqlLeaseExchange::expire_str_, isc::dhcp::Lease::INFINITY_LFT, isc_throw, isc::dhcp::HWAddr::MAX_HWADDR_LEN, isc::dhcp::PgSqlLeaseExchange::pool_id_str_, isc::dhcp::PgSqlLeaseExchange::state_str_, isc::dhcp::PgSqlLeaseExchange::subnet_id_str_, isc::dhcp::PgSqlLeaseExchange::user_context_, and isc::dhcp::PgSqlLeaseExchange::valid_lifetime_str_.