osaf/libs/common/ntfsv/include/ntfsv_mem.h | 7 +
osaf/libs/common/ntfsv/include/ntfsv_msg.h | 1 +
osaf/libs/common/ntfsv/ntfsv_mem.c | 159 +++++++++++++++++++++++++++++
3 files changed, 167 insertions(+), 0 deletions(-)
The patch contains support for cloud resilience feature
in NTF libs common which are mostly used in Agent code
diff --git a/osaf/libs/common/ntfsv/include/ntfsv_mem.h
b/osaf/libs/common/ntfsv/include/ntfsv_mem.h
--- a/osaf/libs/common/ntfsv/include/ntfsv_mem.h
+++ b/osaf/libs/common/ntfsv/include/ntfsv_mem.h
@@ -102,6 +102,13 @@ extern "C" {
size_t ntfs_sanamet_length(const SaNameT* pName);
void ntfs_sanamet_steal(SaStringT value, size_t length, SaNameT* pName);
void ntfs_sanamet_alloc(SaConstStringT value, size_t length, SaNameT*
pName);
+
+ SaAisErrorT
ntfsv_copy_ntf_filter_header(SaNtfNotificationFilterHeaderT*, const
SaNtfNotificationFilterHeaderT*);
+ SaAisErrorT ntfsv_copy_ntf_filter_alarm(SaNtfAlarmNotificationFilterT*,
const SaNtfAlarmNotificationFilterT*);
+ SaAisErrorT
ntfsv_copy_ntf_filter_sec_alarm(SaNtfSecurityAlarmNotificationFilterT*, const
SaNtfSecurityAlarmNotificationFilterT*);
+ SaAisErrorT
ntfsv_copy_ntf_filter_state_ch(SaNtfStateChangeNotificationFilterT*, const
SaNtfStateChangeNotificationFilterT*);
+ SaAisErrorT
ntfsv_copy_ntf_filter_obj_cr_del(SaNtfObjectCreateDeleteNotificationFilterT*,
const SaNtfObjectCreateDeleteNotificationFilterT*);
+ SaAisErrorT
ntfsv_copy_ntf_filter_attr_ch(SaNtfAttributeChangeNotificationFilterT*, const
SaNtfAttributeChangeNotificationFilterT*);
#ifdef __cplusplus
}
#endif
diff --git a/osaf/libs/common/ntfsv/include/ntfsv_msg.h
b/osaf/libs/common/ntfsv/include/ntfsv_msg.h
--- a/osaf/libs/common/ntfsv/include/ntfsv_msg.h
+++ b/osaf/libs/common/ntfsv/include/ntfsv_msg.h
@@ -60,6 +60,7 @@ as mentioned in LOGSV PR doc Section 3.5
/* NTFSV Callback enums */
typedef enum {
+ NTFSV_DUMMY_CALLBACK = 0,
NTFSV_NOTIFICATION_CALLBACK = 1,
NTFSV_DISCARDED_CALLBACK = 2,
NTFSV_NTFS_CBK_MAX = 3
diff --git a/osaf/libs/common/ntfsv/ntfsv_mem.c
b/osaf/libs/common/ntfsv/ntfsv_mem.c
--- a/osaf/libs/common/ntfsv/ntfsv_mem.c
+++ b/osaf/libs/common/ntfsv/ntfsv_mem.c
@@ -1335,3 +1335,162 @@ void ntfs_sanamet_steal(SaStringT value,
*((SaUint16T*)pName) += 1;
}
}
+
+/**
+ * @Brief: Copy filter header from pSrc to pDes
+ */
+SaAisErrorT ntfsv_copy_ntf_filter_header(SaNtfNotificationFilterHeaderT* pDes,
+ const SaNtfNotificationFilterHeaderT* pSrc)
+{
+ SaAisErrorT rc = SA_AIS_OK;
+ int i;
+ /* Event Types */
+ pDes->numEventTypes = pSrc->numEventTypes;
+ for (i = 0; i < pDes->numEventTypes; i++)
+ pDes->eventTypes[i] = pSrc->eventTypes[i];
+ /* notification objects */
+ pDes->numNotificationObjects = pSrc->numNotificationObjects;
+ for (i = 0; i < pDes->numNotificationObjects && rc == SA_AIS_OK; i++)
+ rc = ntfsv_sanamet_copy(&pDes->notificationObjects[i],
+
&pSrc->notificationObjects[i]);
+ /* notifying objects */
+ pDes->numNotifyingObjects = pSrc->numNotifyingObjects;
+ for (i = 0; i < pDes->numNotifyingObjects && rc == SA_AIS_OK; i++)
+ rc = ntfsv_sanamet_copy(&pDes->notifyingObjects[i],
+
&pSrc->notifyingObjects[i]);
+ /* notification class ids */
+ pDes->numNotificationClassIds = pSrc->numNotificationClassIds;
+ for (i = 0; i < pDes->numNotificationClassIds; i++)
+ pDes->notificationClassIds[i] = pSrc->notificationClassIds[i];
+
+ return rc;
+}
+
+/**
+ * @Brief: Copy alarm notification filter
+ */
+SaAisErrorT ntfsv_copy_ntf_filter_alarm(SaNtfAlarmNotificationFilterT* pDes,
+ const SaNtfAlarmNotificationFilterT* pSrc)
+{
+ SaAisErrorT rc = SA_AIS_OK;
+ int i;
+ pDes->notificationFilterHandle = pSrc->notificationFilterHandle;
+ if ((rc = ntfsv_copy_ntf_filter_header(&pDes->notificationFilterHeader,
+
&pSrc->notificationFilterHeader)) != SA_AIS_OK)
+ goto done;
+
+ pDes->numPerceivedSeverities = pSrc->numPerceivedSeverities;
+ for (i = 0; i < pDes->numPerceivedSeverities; i++)
+ pDes->perceivedSeverities[i] = pSrc->perceivedSeverities[i];
+
+ pDes->numProbableCauses = pSrc->numProbableCauses;
+ for (i = 0; i < pDes->numProbableCauses; i++)
+ pDes->probableCauses[i] = pSrc->probableCauses[i];
+
+ pDes->numTrends = pSrc->numTrends;
+ for (i = 0; i < pDes->numTrends; i++)
+ pDes->trends[i] = pSrc->trends[i];
+
+done:
+ return rc;
+}
+
+/**
+ * @Brief: Copy security alarm notification filter
+ */
+SaAisErrorT
ntfsv_copy_ntf_filter_sec_alarm(SaNtfSecurityAlarmNotificationFilterT* pDes,
+ const SaNtfSecurityAlarmNotificationFilterT* pSrc)
+{
+ SaAisErrorT rc = SA_AIS_OK;
+ int i;
+ pDes->notificationFilterHandle = pSrc->notificationFilterHandle;
+ if ((rc = ntfsv_copy_ntf_filter_header(&pDes->notificationFilterHeader,
+
&pSrc->notificationFilterHeader)) != SA_AIS_OK)
+ goto done;
+
+ pDes->numProbableCauses = pSrc->numProbableCauses;
+ for (i = 0; i < pDes->numProbableCauses; i++)
+ pDes->probableCauses[i] = pSrc->probableCauses[i];
+
+ pDes->numSecurityAlarmDetectors = pSrc->numSecurityAlarmDetectors;
+ for (i = 0; i < pDes->numSecurityAlarmDetectors; i++)
+ pDes->securityAlarmDetectors[i] =
pSrc->securityAlarmDetectors[i];
+
+ pDes->numServiceProviders = pSrc->numServiceProviders;
+ for (i = 0; i < pDes->numServiceProviders; i++)
+ pDes->serviceProviders[i] = pSrc->serviceProviders[i];
+
+ pDes->numServiceUsers = pSrc->numServiceUsers;
+ for (i = 0; i < pDes->numServiceUsers; i++)
+ pDes->serviceUsers[i] = pSrc->serviceUsers[i];
+
+ pDes->numSeverities = pSrc->numSeverities;
+ for (i = 0; i < pDes->numSeverities; i++)
+ pDes->severities[i] = pSrc->severities[i];
+done:
+ return rc;
+}
+
+/**
+ * @Brief: Copy state change notification filter
+ */
+SaAisErrorT
ntfsv_copy_ntf_filter_state_ch(SaNtfStateChangeNotificationFilterT* pDes,
+ const SaNtfStateChangeNotificationFilterT* pSrc)
+{
+ SaAisErrorT rc = SA_AIS_OK;
+ int i;
+ pDes->notificationFilterHandle = pSrc->notificationFilterHandle;
+ if ((rc = ntfsv_copy_ntf_filter_header(&pDes->notificationFilterHeader,
+
&pSrc->notificationFilterHeader)) != SA_AIS_OK)
+ goto done;
+
+ pDes->numSourceIndicators = pSrc->numSourceIndicators;
+ for (i = 0; i < pDes->numSourceIndicators; i++)
+ pDes->sourceIndicators[i] = pSrc->sourceIndicators[i];
+
+ pDes->numStateChanges = pSrc->numStateChanges;
+ for (i = 0; i < pDes->numStateChanges; i++)
+ pDes->changedStates[i] = pSrc->changedStates[i];
+done:
+ return rc;
+}
+
+/**
+ * @Brief: Copy object create delete notification filter
+ */
+SaAisErrorT
ntfsv_copy_ntf_filter_obj_cr_del(SaNtfObjectCreateDeleteNotificationFilterT*
pDes,
+ const SaNtfObjectCreateDeleteNotificationFilterT* pSrc)
+{
+ SaAisErrorT rc = SA_AIS_OK;
+ int i;
+ pDes->notificationFilterHandle = pSrc->notificationFilterHandle;
+ if ((rc = ntfsv_copy_ntf_filter_header(&pDes->notificationFilterHeader,
+
&pSrc->notificationFilterHeader)) != SA_AIS_OK)
+ goto done;
+
+ pDes->numSourceIndicators = pSrc->numSourceIndicators;
+ for (i = 0; i < pDes->numSourceIndicators; i++)
+ pDes->sourceIndicators[i] = pSrc->sourceIndicators[i];
+done:
+ return rc;
+}
+
+/**
+ * @Brief: Copy attribute change notification filter
+ */
+SaAisErrorT
ntfsv_copy_ntf_filter_attr_ch(SaNtfAttributeChangeNotificationFilterT* pDes,
+ const SaNtfAttributeChangeNotificationFilterT* pSrc)
+{
+ SaAisErrorT rc = SA_AIS_OK;
+ int i;
+ pDes->notificationFilterHandle = pSrc->notificationFilterHandle;
+ if ((rc = ntfsv_copy_ntf_filter_header(&pDes->notificationFilterHeader,
+
&pSrc->notificationFilterHeader)) != SA_AIS_OK)
+ goto done;
+
+ pDes->numSourceIndicators = pSrc->numSourceIndicators;
+ for (i = 0; i < pDes->numSourceIndicators; i++)
+ pDes->sourceIndicators[i] = pSrc->sourceIndicators[i];
+done:
+ return rc;
+}
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel