00-README.conf                       |  18 ++++++++++++++++++
 osaf/libs/saf/include/saAis.h        |   4 ++++
 osaf/libs/saf/include/saAis_B_5_14.h |  17 +++++++++++++++++
 3 files changed, 39 insertions(+), 0 deletions(-)


Add declarations of saAisNameLend() and saAisNameBorrow() to saAis_B_5_14.h.
Update 00-README.conf with description of how to enable the extended SaNameT
type.

diff --git a/00-README.conf b/00-README.conf
--- a/00-README.conf
+++ b/00-README.conf
@@ -447,3 +447,21 @@ Note: The OpenSAF default implemetation 
       Earlier default implementation of the command (which was never called 
from SMF) requires a bundle 
       name as input parameter. 
       From OpenSAF 4.4 the input parameter shall be the DN of the bundle to 
check.
+
+Extended SaNameT type
+=========================================================================
+The SaNameT type is deprecated will be replaced with string parameters in new
+SAF APIs. As an intermediate solution, the extended format of the SaNameT type
+can be used to pass string parameters to and from old SAF APIs as well, by
+tunneling them through the SaNameT type. To enable the extended SaNameT
+format, the application source code has to be compiled with the
+SA_EXTENDED_NAME_SOURCE preprocessor macro defined, and the environment
+variable SA_ENABLE_EXTENDED_NAMES must be set to the value 1 before the first
+call to any SAF API function.
+
+When the extended SaNameT format is enabled, the SA_MAX_NAME_LENGTH constant
+must not be used, and the application must treat the SaNameT type as opaque
+and not access any of its members directly. Instead, the saAisNameLend() and
+saAisNameBorrow() access functions shall be used. The
+SA_MAX_UNEXTENDED_NAME_LENGTH constant can be used to refer to the maximum
+string length that can be stored in the unextended SaNameT type.
diff --git a/osaf/libs/saf/include/saAis.h b/osaf/libs/saf/include/saAis.h
--- a/osaf/libs/saf/include/saAis.h
+++ b/osaf/libs/saf/include/saAis.h
@@ -70,7 +70,9 @@ typedef SaUint64T             SaSelectio
 #define SA_TIME_ONE_DAY         86400000000000LL
 #define SA_TIME_MAX             SA_TIME_END
 
+#ifndef SA_EXTENDED_NAME_SOURCE
 #define SA_MAX_NAME_LENGTH 256
+#endif /* SA_EXTENDED_NAME_SOURCE */
 
 #define SA_TRACK_CURRENT       0x01
 #define SA_TRACK_CHANGES       0x02
@@ -156,10 +158,12 @@ typedef struct {
    SaUint8T  *bufferAddr;
 } SaAnyT;
 
+#ifndef SA_EXTENDED_NAME_SOURCE
 typedef struct {
     SaUint16T length;
     SaUint8T value[SA_MAX_NAME_LENGTH];
 } SaNameT;
+#endif /* SA_EXTENDED_NAME_SOURCE */
 
 typedef struct {
     SaUint8T releaseCode;
diff --git a/osaf/libs/saf/include/saAis_B_5_14.h 
b/osaf/libs/saf/include/saAis_B_5_14.h
--- a/osaf/libs/saf/include/saAis_B_5_14.h
+++ b/osaf/libs/saf/include/saAis_B_5_14.h
@@ -31,6 +31,23 @@ extern "C" {
 
 typedef const char* SaConstStringT;
 
+#ifdef SA_EXTENDED_NAME_SOURCE
+#define SA_MAX_UNEXTENDED_NAME_LENGTH 256
+
+typedef struct {
+    SaUint16T _opaque[129];
+} SaNameT;
+
+extern void
+saAisNameLend(
+    SaConstStringT value,
+    SaNameT* name);
+
+extern SaConstStringT
+saAisNameBorrow(
+    const SaNameT* name);
+#endif /* SA_EXTENDED_NAME_SOURCE */
+
 #ifdef  __cplusplus
 }
 #endif

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://www.hpccsystems.com
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to