123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- #ifndef MYSQL_HOST_DATA_SOURCE_H
- #define MYSQL_HOST_DATA_SOURCE_H
- #include <dhcpsrv/base_host_data_source.h>
- #include <dhcpsrv/mysql_connection.h>
- namespace isc {
- namespace dhcp {
- class MySqlHostDataSourceImpl;
- class MySqlHostDataSource: public BaseHostDataSource {
- public:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MySqlHostDataSource(const DatabaseConnection::ParameterMap& parameters);
-
-
-
- virtual ~MySqlHostDataSource();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostCollection
- getAll(const HWAddrPtr& hwaddr, const DuidPtr& duid = DuidPtr()) const;
-
-
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostCollection
- getAll(const Host::IdentifierType& identifier_type,
- const uint8_t* identifier_begin, const size_t identifier_len) const;
-
-
-
-
-
-
-
-
- virtual ConstHostCollection
- getAll4(const asiolink::IOAddress& address) const;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostPtr
- get4(const SubnetID& subnet_id, const HWAddrPtr& hwaddr,
- const DuidPtr& duid = DuidPtr()) const;
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostPtr
- get4(const SubnetID& subnet_id, const Host::IdentifierType& identifier_type,
- const uint8_t* identifier_begin, const size_t identifier_len) const;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostPtr
- get4(const SubnetID& subnet_id, const asiolink::IOAddress& address) const;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostPtr
- get6(const SubnetID& subnet_id, const DuidPtr& duid,
- const HWAddrPtr& hwaddr = HWAddrPtr()) const;
-
-
-
-
-
-
-
-
-
-
- virtual ConstHostPtr
- get6(const SubnetID& subnet_id, const Host::IdentifierType& identifier_type,
- const uint8_t* identifier_begin, const size_t identifier_len) const;
-
-
-
-
-
-
- virtual ConstHostPtr
- get6(const asiolink::IOAddress& prefix, const uint8_t prefix_len) const;
-
-
-
-
-
-
-
-
-
-
- virtual void add(const HostPtr& host);
-
-
-
-
-
- virtual std::string getType() const {
- return (std::string("mysql"));
- }
-
-
-
-
-
- virtual std::string getName() const;
-
-
-
-
-
- virtual std::string getDescription() const;
-
-
-
-
-
-
-
-
- virtual std::pair<uint32_t, uint32_t> getVersion() const;
-
-
-
- virtual void commit();
-
-
-
- virtual void rollback();
-
-
-
- enum StatementIndex {
- INSERT_HOST,
- INSERT_V6_RESRV,
- GET_HOST_DHCPID,
- GET_HOST_ADDR,
- GET_HOST_SUBID4_DHCPID,
- GET_HOST_SUBID6_DHCPID,
- GET_HOST_SUBID_ADDR,
- GET_HOST_PREFIX,
- GET_VERSION,
- NUM_STATEMENTS
- };
- private:
-
- MySqlHostDataSourceImpl* impl_;
- };
- }
- }
- #endif
|