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;
+}

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to