summaryrefslogtreecommitdiffstats
path: root/src/lib/dhcpsrv/lease_file_stats.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dhcpsrv/lease_file_stats.h')
-rw-r--r--src/lib/dhcpsrv/lease_file_stats.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/lib/dhcpsrv/lease_file_stats.h b/src/lib/dhcpsrv/lease_file_stats.h
new file mode 100644
index 0000000..6a46480
--- /dev/null
+++ b/src/lib/dhcpsrv/lease_file_stats.h
@@ -0,0 +1,94 @@
+// Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC")
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef LEASE_FILE_STATS_H
+#define LEASE_FILE_STATS_H
+
+namespace isc {
+namespace dhcp {
+
+/// @brief Provides statistics for leases.
+///
+/// This class provides a common space for statistics that we wish
+/// to keep about leases. Currently this is for use with lease files
+/// but it may be expanded in the future.
+class LeaseFileStats {
+public:
+ /// @brief Constructor
+ ///
+ /// Initializes the stats variables to zeros
+ LeaseFileStats() {
+ clearStatistics();
+ }
+
+ /// @brief Destructor
+ ~LeaseFileStats() {
+ }
+
+ /// @brief Gets the number of attempts to read a lease
+ uint32_t getReads() const {
+ return (reads_);
+ }
+
+ /// @brief Gets the number of leases read
+ uint32_t getReadLeases() const {
+ return (read_leases_);
+ }
+
+ /// @brief Gets the number of errors when reading leases
+ uint32_t getReadErrs() const {
+ return (read_errs_);
+ }
+
+ /// @brief Gets the number of attempts to write a lease
+ uint32_t getWrites() const {
+ return (writes_);
+ }
+
+ /// @brief Gets the number of leases written
+ uint32_t getWriteLeases() const {
+ return (write_leases_);
+ }
+
+ /// @brief Gets the number of errors when writing leases
+ uint32_t getWriteErrs() const {
+ return (write_errs_);
+ }
+
+ /// @brief Clears the statistics
+ void clearStatistics() {
+ reads_ = 0;
+ read_leases_ = 0;
+ read_errs_ = 0;
+ writes_ = 0;
+ write_leases_ = 0;
+ write_errs_ = 0;
+ }
+
+protected:
+ /// @brief Number of attempts to read a lease
+ uint32_t reads_;
+
+ /// @brief Number of leases read
+ uint32_t read_leases_;
+
+ /// @brief Number of errors when reading
+ uint32_t read_errs_;
+
+ /// @brief Number of attempts to write a lease
+ uint32_t writes_;
+
+ /// @brief Number of lease written
+ uint32_t write_leases_;
+
+ /// @brief Number of errors when writing
+ uint32_t write_errs_;
+};
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // LEASE_FILE_STATS_H