[pytango] 09/98: Implement TANGO enumeration type (client)

Sandor Bodo-Merle sbodomerle-guest at moszumanska.debian.org
Thu Sep 28 19:17:39 UTC 2017


This is an automated email from the git hooks/post-receive script.

sbodomerle-guest pushed a commit to tag v9.2.0
in repository pytango.

commit 07a5347e27bffbfc5c7dffc25169b50dfb1b11bc
Author: Jose Tiago Coutinho Macara <tiago.coutinho at esrf.fr>
Date:   Fri Dec 11 14:41:27 2015 +0100

    Implement TANGO enumeration type (client)
---
 src/boost/cpp/tango_numpy.h    |  1 +
 src/boost/cpp/tgutils.h        | 21 +++++++++++++++++++--
 src/boost/python/__init__.py   |  4 ++--
 src/boost/python/base_types.py |  1 +
 4 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/boost/cpp/tango_numpy.h b/src/boost/cpp/tango_numpy.h
index 56f29e5..13f5aa2 100644
--- a/src/boost/cpp/tango_numpy.h
+++ b/src/boost/cpp/tango_numpy.h
@@ -59,6 +59,7 @@
     //Unassigned: Tango::DEV_ENCODED
     DEF_TANGO2NUMPY(Tango::DEV_LONG64, NPY_INT64 );
     DEF_TANGO2NUMPY(Tango::DEV_ULONG64, NPY_UINT64 );
+    DEF_TANGO2NUMPY(Tango::DEV_ENUM, NPY_INT16 );
 
 /// @name Conversion from a Tango array type name to the scalar numpy name
 /// For types like DEVVAR_DOUBLEARRAY. This is ended with ARRAY, except
diff --git a/src/boost/cpp/tgutils.h b/src/boost/cpp/tgutils.h
index 1cab669..ea8d5fd 100644
--- a/src/boost/cpp/tgutils.h
+++ b/src/boost/cpp/tgutils.h
@@ -66,18 +66,24 @@ struct tango_name2scalarname
         enum {value = Tango:: scalarname}; \
     };
 
-#define DEF_TANGO_NAME2TYPE(tangoname, tangotype) \
+#define DEF_TANGO_NAME2TYPE__(tangoname, tangotype) \
     template<> \
     struct tango_name2type<Tango:: tangoname> \
     { \
         typedef tangotype Type; \
-    }; \
+    };
+
+#define DEF_TANGO_TYPE2NAME__(tangotype, tangoname) \
     template<> \
     struct tango_type2name<tangotype> \
     { \
         enum {value = Tango:: tangoname}; \
     };
 
+#define DEF_TANGO_NAME2TYPE(tangoname, tangotype) \
+    DEF_TANGO_NAME2TYPE__(tangoname, tangotype) \
+    DEF_TANGO_TYPE2NAME__(tangotype, tangoname)
+
 #define DEF_TANGO_NAME2ARRAY(tangoname, tangotype, simple) \
     template<> \
     struct tango_name2arraytype<Tango:: tangoname> \
@@ -109,6 +115,11 @@ TSD_SIMPLE__( DEV_STATE,                Tango::DevState  ,  Tango::DevVarStateAr
 TSD_SIMPLE__( DEV_ENCODED,              Tango::DevEncoded,  Tango::DevVarEncodedArray     );
 TSD_SIMPLE__( DEV_PIPE_BLOB,            Tango::DevPipeBlob, void  );
 
+// since enum type is implemented as a short we cannot use tango_type2name because
+// it will conflict with the DevShort template declaration
+DEF_TANGO_NAME2TYPE__( DEV_ENUM,        Tango::DevEnum);
+DEF_TANGO_NAME2ARRAY( DEV_ENUM, Tango::DevVarShortArray, Tango::DevEnum);
+
 TSD_SIMPLE__( DEV_VOID,                 void             , void);
 
 TSD_ARRAY__(  DEVVAR_CHARARRAY,         _CORBA_Octet     ,  Tango::DevVarCharArray);
@@ -188,6 +199,7 @@ DEF_TANGO_SCALAR_ARRAY_NAMES( DEV_STATE,   DEVVAR_STATEARRAY );
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ULONG64, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_STATE, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ENCODED, DOIT) \
+        __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ENUM, DOIT) \
         default: \
             assert(false); \
     } } else (void)0
@@ -207,6 +219,7 @@ DEF_TANGO_SCALAR_ARRAY_NAMES( DEV_STATE,   DEVVAR_STATEARRAY );
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ULONG64, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_STATE, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ENCODED, DOIT) \
+        __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ENUM, DOIT) \
         default: \
             assert(false); \
     } } else (void)0
@@ -251,6 +264,7 @@ DEF_TANGO_SCALAR_ARRAY_NAMES( DEV_STATE,   DEVVAR_STATEARRAY );
 /*        __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_INT, DOIT_SIMPLE) */\
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ENCODED, DOIT_SIMPLE) \
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_PIPE_BLOB, DOIT_SIMPLE) \
+        __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ENUM, DOIT_SIMPLE) \
         default: \
             assert(false); \
     } } else (void)0
@@ -308,6 +322,7 @@ DEF_TANGO_SCALAR_ARRAY_NAMES( DEV_STATE,   DEVVAR_STATEARRAY );
 /*        __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_INT, DOIT_SIMPLE) */\
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ENCODED, DOIT_SIMPLE) \
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_PIPE_BLOB, DOIT_SIMPLE) \
+        __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ENUM, DOIT_SIMPLE) \
         default: \
             assert(false); \
     } } else (void)0
@@ -329,6 +344,7 @@ DEF_TANGO_SCALAR_ARRAY_NAMES( DEV_STATE,   DEVVAR_STATEARRAY );
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_UCHAR, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_LONG64, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ULONG64, DOIT) \
+        __TANGO_DEPEND_ON_TYPE_AUX_ID(DEV_ENUM, DOIT) \
         default: \
             assert(false); \
     } } else (void)0
@@ -344,6 +360,7 @@ DEF_TANGO_SCALAR_ARRAY_NAMES( DEV_STATE,   DEVVAR_STATEARRAY );
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_UCHAR, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_LONG64, DOIT) \
         __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ULONG64, DOIT) \
+        __TANGO_DEPEND_ON_TYPE_AUX_NAME(DEV_ENUM, DOIT) \
         default: \
             assert(false); \
     } } else (void)0
diff --git a/src/boost/python/__init__.py b/src/boost/python/__init__.py
index 83bb745..01b20e1 100644
--- a/src/boost/python/__init__.py
+++ b/src/boost/python/__init__.py
@@ -35,7 +35,7 @@ __all__ = [ 'AccessControlType', 'ApiUtil', 'ArchiveEventInfo',
 'DbHistoryList', 'DbServerInfo', 'DbServerData', 'DebugIt', 'DevBoolean', 'DevCommandInfo',
 'DevDouble', 'DevEncoded', 'DevError', 'DevFailed', 'DevFloat', 'DevInt',
 'DevLong', 'DevLong64', 'DevShort', 'DevSource', 'DevState', 'DevString',
-'DevUChar', 'DevULong', 'DevULong64', 'DevUShort', 'DevVarBooleanArray',
+'DevUChar', 'DevULong', 'DevULong64', 'DevUShort', 'DevEnum', 'DevVarBooleanArray',
 'DevVarCharArray', 'DevVarDoubleArray', 'DevVarDoubleStringArray',
 'DevVarFloatArray', 'DevVarLong64Array', 'DevVarLongArray',
 'DevVarLongStringArray', 'DevVarShortArray', 'DevVarStringArray',
@@ -133,7 +133,7 @@ from ._PyTango import (AccessControlType, ApiUtil, ArchiveEventInfo,
     DbHistoryList, DbServerInfo, DbServerData, DevBoolean, DevCommandInfo, DevDouble,
     DevEncoded, DevError, DevFailed, DevFloat, DevInt, DevLong, DevLong64,
     DevShort, DevSource, DevState, DevString, DevUChar, DevULong, DevULong64,
-    DevUShort, DevVarBooleanArray, DevVarCharArray, DevVarDoubleArray,
+    DevUShort, DevEnum, DevVarBooleanArray, DevVarCharArray, DevVarDoubleArray,
     DevVarDoubleStringArray, DevVarFloatArray, DevVarLong64Array,
     DevVarLongArray, DevVarLongStringArray, DevVarShortArray, DevVarStringArray,
     DevVarULong64Array, DevVarULongArray, DevVarUShortArray, DevVoid,
diff --git a/src/boost/python/base_types.py b/src/boost/python/base_types.py
index d49cc20..c35c06f 100644
--- a/src/boost/python/base_types.py
+++ b/src/boost/python/base_types.py
@@ -357,6 +357,7 @@ def __doc_base_types():
         - DevVarULong64Array
         - DevInt
         - DevEncoded
+        - DevEnum
     """ )
 
     document_enum("LockerLanguage", """

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pytango.git



More information about the debian-science-commits mailing list