Implement sendTrap function

This function gets all the objects from the specific
notification class and send the snmp trap using the
netsnmp lib functions.

This commt adds the configure, makefile, bootstrap.sh,
clangformat file.

Add the unit test cases for ErrorNotification unit.

Change-Id: I2e982f18eb2745f2c0c8de0702cc85d12e80f6e3
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/snmp_notification.hpp b/snmp_notification.hpp
index d21e68c..07a8518 100644
--- a/snmp_notification.hpp
+++ b/snmp_notification.hpp
@@ -107,6 +107,17 @@
     void sendTrap();
 
   protected:
+    /** @brief Add the variable in the snmp pdu object.
+     *  @param[in] pdu - SNMP pdu object.
+     *  @param[in] objID -  SNMP object identifier.
+     *  @param[in] objIDLen - Object identifier length.
+     *  @param[in] type - ASN type of object.
+     *  @param[in] val - Value of the object.
+     *  @returns true on success otherwise false.
+     */
+    bool addPDUVar(netsnmp_pdu &pdu, const OID &objID, size_t objIDLen,
+                   u_char type, Value val);
+
     /** @brief get the SNMP notification type in the mib
      *         defined format.
      *         This is pure virtual function all the subclasses
@@ -121,6 +132,8 @@
     virtual std::vector<Object> getFieldOIDList() = 0;
 };
 
+class TestErrorNotification;
+
 /** @class ErrorNotification
  *  @brief subclass of Notification
  *
@@ -203,6 +216,8 @@
 
         return objectList;
     }
+
+    friend class TestErrorNotification;
 };
 
 } // namespace snmp