Kea  2.1.7-git
isc::dhcp::PgSqlLease4Exchange Class Reference

Supports exchanging IPv4 leases with PostgreSQL. More...

+ Inheritance diagram for isc::dhcp::PgSqlLease4Exchange:

Public Member Functions

 PgSqlLease4Exchange ()
 Constructor. More...
 
Lease4Ptr convertFromDatabase (const PgSqlResult &r, int row)
 Creates a Lease4 object from a given row in a result set. More...
 
void createBindForSend (const Lease4Ptr &lease, PsqlBindArray &bind_array)
 Creates the bind array for sending Lease4 data to the database. More...
 
- 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. More...
 
virtual ~PgSqlExchange ()
 Destructor. More...
 

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, 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. More...
 
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. More...
 
static time_t convertFromDatabaseTime (const std::string &db_time_val)
 Converts time stamp from the database to a time_t. More...
 
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. More...
 
static std::string convertLocalToDatabaseTime (const time_t input_time)
 Converts local time_t value to a text representation in local time. More...
 
static std::string convertToDatabaseTime (const time_t input_time)
 Converts UTC time_t value to a text representation in local time. More...
 
static std::string convertToDatabaseTime (const time_t cltt, const uint32_t valid_lifetime)
 Converts lease expiration time to a text representation in local time. More...
 
static std::string dumpRow (const PgSqlResult &r, int row)
 Diagnostic tool which dumps the Result row contents as a string. More...
 
static std::string getColumnLabel (const PgSqlResult &r, const size_t col)
 Fetches the name of the column in a result set. More...
 
static void getColumnValue (const PgSqlResult &r, const int row, const size_t col, std::string &value)
 Fetches text column value as a string. More...
 
static void getColumnValue (const PgSqlResult &r, const int row, const size_t col, bool &value)
 Fetches boolean text ('t' or 'f') as a bool. More...
 
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. More...
 
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. More...
 
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. More...
 
static void getColumnValue (const PgSqlResult &r, const int row, const size_t col, data::ElementPtr &value)
 Fetches a JSON column as an ElementPtr. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static bool isColumnNull (const PgSqlResult &r, const int row, const size_t col)
 Returns true if a column within a row is null. More...
 
- Protected Attributes inherited from isc::dhcp::PgSqlLeaseExchange
std::string addr_str_
 Common Instance members used for binding and conversion. More...
 
size_t hwaddr_length_
 
std::vector< uint8_t > hwaddr_
 
uint8_t hwaddr_buffer_ [HWAddr::MAX_HWADDR_LEN]
 
uint32_t valid_lifetime_
 
std::string valid_lifetime_str_
 
time_t expire_
 
std::string expire_str_
 
uint32_t subnet_id_
 
std::string subnet_id_str_
 
time_t cltt_
 
bool fqdn_fwd_
 
bool fqdn_rev_
 
std::string hostname_
 
std::string state_str_
 
std::string user_context_
 
- Protected Attributes inherited from isc::db::PgSqlExchange
std::vector< std::string > columns_
 Stores text labels for columns, currently only used for logging and errors. More...
 

Detailed Description

Supports exchanging IPv4 leases with PostgreSQL.

Definition at line 425 of file pgsql_lease_mgr.cc.

Constructor & Destructor Documentation

◆ PgSqlLease4Exchange()

isc::dhcp::PgSqlLease4Exchange::PgSqlLease4Exchange ( )
inline

Constructor.

Definition at line 449 of file pgsql_lease_mgr.cc.

Member Function Documentation

◆ convertFromDatabase()

Lease4Ptr isc::dhcp::PgSqlLease4Exchange::convertFromDatabase ( const PgSqlResult r,
int  row 
)
inline

Creates a Lease4 object from a given row in a result set.

Parameters
rresult set containing one or rows from the Lease4 table
rowrow number within the result set from to create the Lease4 object.
Returns
Lease4Ptr to the newly created Lease4 object
Exceptions
DbOperationErrorif the lease cannot be created.

Definition at line 566 of file pgsql_lease_mgr.cc.

References isc::dhcp::HTYPE_ETHER, isc_throw, and isc::Exception::what().

+ Here is the call graph for this function:

◆ createBindForSend()

void isc::dhcp::PgSqlLease4Exchange::createBindForSend ( const Lease4Ptr lease,
PsqlBindArray bind_array 
)
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.

Parameters
leaseLease4 object that is to be written to the database
[out]bind_arrayarray to populate with the lease data values
Exceptions
DbOperationErrorif bind_array cannot be populated.

Definition at line 483 of file pgsql_lease_mgr.cc.

References isc::db::PsqlBindArray::add(), isc_throw, and isc::Exception::what().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: