13 #ifndef _VPNSTATSBASE_
14 #define _VPNSTATSBASE_
17 #if defined(_WIN32) && (_MSC_VER < 1800)
18 typedef unsigned long uint32_t;
23 #include "ProtocolInfo.h"
24 #include "RouteInfo.h"
35 class CSessionInfoTlv;
38 class CExtensibleStats;
55 const std::list<RouteInfo *> &getSecureRoutes();
61 uint16_t getAppliedSecureRouteCount(
bool bIPv6)
63 return (bIPv6 ? m_uiAppliedSecureRouteCountV6 :
64 m_uiAppliedSecureRouteCountV4);
70 const std::list<RouteInfo *> &getNonsecureRoutes();
75 uint16_t getAppliedNonsecureRouteCount(
bool bIPv6)
77 return (bIPv6 ? m_uiAppliedNonsecureRouteCountV6 :
78 m_uiAppliedNonsecureRouteCountV4);
84 const std::list<ProtocolInfo *> &getProtocolInfo();
89 const std::list<FirewallInfo *> &getFirewallInfo();
95 void setConnectionStatistics(CStatisticsTlv *connectionStats);
97 bool ClearConnectionStatistics();
99 bool ClearVPNSessionStats();
104 bool hasSessionInfo();
108 void setDisconnected();
115 bool setStateInfo(CStateTlv* stateInfo,
116 STATE& rSessionState,
117 VPNCON_SUBSTATE& rSessionSubState,
118 STATE& rMgmtTunSessionState,
119 VPNCON_SUBSTATE& rMgmtTunSessionSubState,
120 NETENV_STATE& rNetEnvState,
121 NETCTRL_STATE& rNetCtrlState,
122 NETWORK_TYPE& rNetType);
126 void setSessionInfo(CSessionInfoTlv *sessionInfo);
130 void setTNDInfo(CSessionInfoTlv& sessionInfo);
134 void setClientOperatingMode(uint32_t operatingMode);
136 static const tstring::value_type*
const* getVpnStatsStringTable();
138 void StreamStats(tostream &outStream);
141 static const tstring::value_type*
const sm_pVpnStatsStringTable[];
144 ApiStringMap mo_StatNameValue;
145 ApiStringMap mo_SessionStats;
148 tstring ms_CurrentMgmtTunState;
150 bool mb_GotSessionInfo;
152 std::list<RouteInfo *> mlop_SecureRoutes;
153 uint16_t m_uiAppliedSecureRouteCountV4;
154 uint16_t m_uiAppliedSecureRouteCountV6;
156 std::list<RouteInfo *> mlop_NonsecureRoutes;
157 uint16_t m_uiAppliedNonsecureRouteCountV4;
158 uint16_t m_uiAppliedNonsecureRouteCountV6;
160 std::list<ProtocolInfo *> mlop_ProtocolInfo;
162 std::list<FirewallInfo *> mlop_FirewallInfo;
164 static CManualLock sm_statsLock;
169 ApiStringMap &getStatsMap();
170 ApiStringMap &getSessionStatsMap();
173 void setStatValue(ApiStringMap &map,
tstring &label,
tstring value);
177 void clearProtocolInfo();
178 void clearSecureRoutes();
179 void clearNonSecureRoutes();
180 void clearFirewallInfo();
184 void setIndividualStats(CExtensibleStats *stats);
186 friend VPN_VPNAPI tostream& operator<<(tostream &outStream,
192 #endif // _VPNSTATSBASE_