face: declare face counters
refs #1280
Change-Id: Ia1c50ab2b31d6131728489b3b038dc6f7608266f
diff --git a/daemon/face/face-counter.hpp b/daemon/face/face-counter.hpp
new file mode 100644
index 0000000..e5809eb
--- /dev/null
+++ b/daemon/face/face-counter.hpp
@@ -0,0 +1,114 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (C) 2014 Named Data Networking Project
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NFD_FACE_FACE_COUNTER_HPP
+#define NFD_FACE_FACE_COUNTER_HPP
+
+#include "common.hpp"
+
+namespace nfd {
+
+/** \class FaceCounter
+ * \brief represents a counter on face
+ */
+typedef uint64_t FaceCounter;
+
+
+/** \brief contains counters on face
+ */
+class FaceCounters
+{
+public:
+ FaceCounters();
+
+ /// incoming Interest (total packets since Face establishment)
+ const FaceCounter&
+ getInInterest() const;
+
+ FaceCounter&
+ getInInterest();
+
+ /// incoming Data (total packets since Face establishment)
+ const FaceCounter&
+ getInData() const;
+
+ FaceCounter&
+ getInData();
+
+ /// outgoing Interest (total packets since Face establishment)
+ const FaceCounter&
+ getOutInterest() const;
+
+ FaceCounter&
+ getOutInterest();
+
+ /// outgoing Data (total packets since Face establishment)
+ const FaceCounter&
+ getOutData() const;
+
+ FaceCounter&
+ getOutData();
+
+private:
+ FaceCounter m_inInterest;
+ FaceCounter m_inData;
+ FaceCounter m_outInterest;
+ FaceCounter m_outData;
+};
+
+
+inline const FaceCounter&
+FaceCounters::getInInterest() const
+{
+ return m_inInterest;
+}
+
+inline FaceCounter&
+FaceCounters::getInInterest()
+{
+ return m_inInterest;
+}
+
+inline const FaceCounter&
+FaceCounters::getInData() const
+{
+ return m_inData;
+}
+
+inline FaceCounter&
+FaceCounters::getInData()
+{
+ return m_inData;
+}
+
+inline const FaceCounter&
+FaceCounters::getOutInterest() const
+{
+ return m_outInterest;
+}
+
+inline FaceCounter&
+FaceCounters::getOutInterest()
+{
+ return m_outInterest;
+}
+
+inline const FaceCounter&
+FaceCounters::getOutData() const
+{
+ return m_outData;
+}
+
+inline FaceCounter&
+FaceCounters::getOutData()
+{
+ return m_outData;
+}
+
+
+} // namespace nfd
+
+#endif // NFD_FACE_FACE_COUNTER_HPP