additional getters for StringMap; getULong renamed to getUInt32
authorVictor Kirhenshtein <victor@netxms.org>
Mon, 15 Feb 2016 19:47:33 +0000 (21:47 +0200)
committerVictor Kirhenshtein <victor@netxms.org>
Mon, 15 Feb 2016 19:47:33 +0000 (21:47 +0200)
include/nms_util.h
src/libnetxms/strmap.cpp
src/server/drivers/baystack/baystack.cpp
src/server/drivers/dell-pwc/dell-pwc.cpp
src/server/drivers/dlink/dlink.cpp
src/server/drivers/ers8000/ers8000.cpp
src/server/drivers/procurve/procurve.cpp

index 311d6e5..b12c76f 100644 (file)
@@ -597,7 +597,11 @@ public:
    void addAll(StringMap *src);
 
        const TCHAR *get(const TCHAR *key) const { return (const TCHAR *)getObject(key); }
-       UINT32 getULong(const TCHAR *key, UINT32 defaultValue) const;
+   INT32 getInt32(const TCHAR *key, INT32 defaultValue) const;
+       UINT32 getUInt32(const TCHAR *key, UINT32 defaultValue) const;
+   INT64 getInt64(const TCHAR *key, INT64 defaultValue) const;
+   UINT64 getUInt64(const TCHAR *key, UINT64 defaultValue) const;
+   double getDouble(const TCHAR *key, double defaultValue) const;
        bool getBoolean(const TCHAR *key, bool defaultValue) const;
 
    void fillMessage(NXCPMessage *msg, UINT32 sizeFieldId, UINT32 baseFieldId) const;
index ff18792..ab48b3f 100644 (file)
@@ -90,14 +90,58 @@ void StringMap::set(const TCHAR *key, UINT32 value)
 }
 
 /**
- * Get value by key as UINT32
+ * Get value by key as INT32
  */
-UINT32 StringMap::getULong(const TCHAR *key, UINT32 defaultValue) const
+INT32 StringMap::getInt32(const TCHAR *key, INT32 defaultValue) const
 {
        const TCHAR *value = get(key);
        if (value == NULL)
                return defaultValue;
-       return _tcstoul(value, NULL, 0);
+       return _tcstol(value, NULL, 0);
+}
+
+/**
+ * Get value by key as UINT32
+ */
+UINT32 StringMap::getUInt32(const TCHAR *key, UINT32 defaultValue) const
+{
+   const TCHAR *value = get(key);
+   if (value == NULL)
+      return defaultValue;
+   return _tcstoul(value, NULL, 0);
+}
+
+/**
+ * Get value by key as INT64
+ */
+INT64 StringMap::getInt64(const TCHAR *key, INT64 defaultValue) const
+{
+   const TCHAR *value = get(key);
+   if (value == NULL)
+      return defaultValue;
+   return _tcstoll(value, NULL, 0);
+}
+
+/**
+ * Get value by key as UINT64
+ */
+UINT64 StringMap::getUInt64(const TCHAR *key, UINT64 defaultValue) const
+{
+   const TCHAR *value = get(key);
+   if (value == NULL)
+      return defaultValue;
+   return _tcstoull(value, NULL, 0);
+}
+
+/**
+ * Get value by key as double
+ */
+double StringMap::getDouble(const TCHAR *key, double defaultValue) const
+{
+   const TCHAR *value = get(key);
+   if (value == NULL)
+      return defaultValue;
+   return _tcstod(value, NULL);
 }
 
 /**
index 1ac2e76..fdedca0 100644 (file)
@@ -114,7 +114,7 @@ void BayStackDriver::analyzeDevice(SNMP_Transport *snmp, const TCHAR *oid, Strin
  */
 UINT32 BayStackDriver::getSlotSize(StringMap *attributes)
 {
-       return attributes->getULong(_T(".baystack.slotSize"), 64);
+       return attributes->getUInt32(_T(".baystack.slotSize"), 64);
 }
 
 /**
@@ -163,7 +163,7 @@ InterfaceList *BayStackDriver::getInterfaces(SNMP_Transport *snmp, StringMap *at
    }
        
        // Calculate slot/port pair from ifIndex
-       UINT32 slotSize = attributes->getULong(_T(".baystack.slotSize"), 64);
+       UINT32 slotSize = attributes->getUInt32(_T(".baystack.slotSize"), 64);
        for(int i = 0; i < ifList->size(); i++)
        {
                UINT32 slot = ifList->get(i)->index / slotSize + 1;
@@ -175,7 +175,7 @@ InterfaceList *BayStackDriver::getInterfaces(SNMP_Transport *snmp, StringMap *at
                }
        }
 
-       if (attributes->getULong(_T(".baystack.rapidCity.vlan"), 0) > 0)
+       if (attributes->getUInt32(_T(".baystack.rapidCity.vlan"), 0) > 0)
                getVlanInterfaces(snmp, ifList);
 
        UINT32 mgmtIpAddr, mgmtNetMask;
index 7f50e3d..f1a3cd3 100644 (file)
@@ -90,7 +90,7 @@ InterfaceList *PowerConnectDriver::getInterfaces(SNMP_Transport *snmp, StringMap
        if (ifList == NULL)
                return NULL;
 
-       UINT32 slotSize = attributes->getULong(_T(".powerConnect.slotSize"), 52);
+       UINT32 slotSize = attributes->getUInt32(_T(".powerConnect.slotSize"), 52);
 
        // Find physical ports
        for(int i = 0; i < ifList->size(); i++)
index 5fc76c2..f042380 100644 (file)
@@ -90,7 +90,7 @@ InterfaceList *DLinkDriver::getInterfaces(SNMP_Transport *snmp, StringMap *attri
        if (ifList == NULL)
                return NULL;
 
-       UINT32 slotSize = attributes->getULong(_T(".dlink.slotSize"), 48);
+       UINT32 slotSize = attributes->getUInt32(_T(".dlink.slotSize"), 48);
 
        // Find physical ports
        for(int i = 0; i < ifList->size(); i++)
index 418b66e..6804ee5 100644 (file)
@@ -107,7 +107,7 @@ InterfaceList *PassportDriver::getInterfaces(SNMP_Transport *snmp, StringMap *at
        if (ifList == NULL)
                return NULL;
 
-       UINT32 maxSlot = attributes->getULong(_T(".rapidCity.maxSlot"), 10);
+       UINT32 maxSlot = attributes->getUInt32(_T(".rapidCity.maxSlot"), 10);
        bool is1600Series = attributes->getBoolean(_T(".rapidCity.is1600"), false);
        
        // Calculate slot/port pair from ifIndex
index fc64e51..d431096 100644 (file)
@@ -103,7 +103,7 @@ InterfaceList *ProCurveDriver::getInterfaces(SNMP_Transport *snmp, StringMap *at
                return NULL;
 
        bool isModular = attributes->getBoolean(_T(".procurve.isModular"), false);
-       UINT32 slotSize = attributes->getULong(_T(".procurve.slotSize"), 24);
+       UINT32 slotSize = attributes->getUInt32(_T(".procurve.slotSize"), 24);
 
        // Find physical ports
        for(int i = 0; i < ifList->size(); i++)