From 49312d62d515cd1cbe57b59857eaf91e4b081b27 Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Mon, 10 Nov 2014 10:24:10 +0100 Subject: [PATCH] added epicsShared export declarations --- src/nt/ntfield.cpp | 2 ++ src/nt/ntfield.h | 16 ++++++++++++++-- src/nt/ntmultiChannel.cpp | 4 +++- src/nt/ntmultiChannel.h | 20 ++++++++++++++++++-- src/nt/ntnameValue.cpp | 1 + src/nt/ntnameValue.h | 17 ++++++++++++++++- src/nt/ntndarray.cpp | 1 + src/nt/ntndarray.h | 21 ++++++++++++++++++--- src/nt/ntscalar.cpp | 1 + src/nt/ntscalar.h | 17 +++++++++++++++-- src/nt/ntscalarArray.cpp | 1 + src/nt/ntscalarArray.h | 18 ++++++++++++++++-- src/nt/nttable.cpp | 1 + src/nt/nttable.h | 21 ++++++++++++++++++--- src/nt/ntutils.cpp | 1 + src/nt/ntutils.h | 3 ++- 16 files changed, 128 insertions(+), 17 deletions(-) diff --git a/src/nt/ntfield.cpp b/src/nt/ntfield.cpp index a8c29b4..450ee3e 100644 --- a/src/nt/ntfield.cpp +++ b/src/nt/ntfield.cpp @@ -6,6 +6,8 @@ */ #include + +#define epicsExportSharedSymbols #include using namespace epics::pvData; diff --git a/src/nt/ntfield.h b/src/nt/ntfield.h index d3a3f58..4da2cbc 100644 --- a/src/nt/ntfield.h +++ b/src/nt/ntfield.h @@ -9,6 +9,11 @@ #include +#ifdef epicsExportSharedSymbols +# define ntfieldEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + #include #include #include @@ -17,6 +22,13 @@ #include #include +#ifdef ntfieldEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef ntfieldEpicsExportSharedSymbols +#endif + +#include + namespace epics { namespace nt { /** * Convenience Class for introspection fields of a Normative Type @@ -30,7 +42,7 @@ typedef std::tr1::shared_ptr NTFieldPtr; class PVNTField; typedef std::tr1::shared_ptr PVNTFieldPtr; -class NTField { +class epicsShareClass NTField { public: POINTER_DEFINITIONS(NTField); /** @@ -131,7 +143,7 @@ private: * @author mrk * */ -class PVNTField { +class epicsShareClass PVNTField { public: POINTER_DEFINITIONS(PVNTField); /** diff --git a/src/nt/ntmultiChannel.cpp b/src/nt/ntmultiChannel.cpp index b625741..ae73c43 100644 --- a/src/nt/ntmultiChannel.cpp +++ b/src/nt/ntmultiChannel.cpp @@ -5,9 +5,11 @@ * in file LICENSE that is included with this distribution. */ +#include + +#define epicsExportSharedSymbols #include #include -#include using namespace std; using namespace epics::pvData; diff --git a/src/nt/ntmultiChannel.h b/src/nt/ntmultiChannel.h index 30aa35a..3fcc6ef 100644 --- a/src/nt/ntmultiChannel.h +++ b/src/nt/ntmultiChannel.h @@ -7,10 +7,26 @@ #ifndef NTMULTICHANNEL_H #define NTMULTICHANNEL_H -#include #include #include +#ifdef epicsExportSharedSymbols +# define ntmultiChannelEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + +#include +#include + +#ifdef ntmultiChannelEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef ntmultiChannelEpicsExportSharedSymbols +#endif + +#include + +#include + namespace epics { namespace nt { @@ -140,7 +156,7 @@ namespace detail { typedef std::tr1::shared_ptr NTMultiChannelBuilderPtr; -class NTMultiChannel +class epicsShareClass NTMultiChannel { public: POINTER_DEFINITIONS(NTMultiChannel); diff --git a/src/nt/ntnameValue.cpp b/src/nt/ntnameValue.cpp index 384dafd..c396758 100644 --- a/src/nt/ntnameValue.cpp +++ b/src/nt/ntnameValue.cpp @@ -5,6 +5,7 @@ * in file LICENSE that is included with this distribution. */ +#define epicsExportSharedSymbols #include #include diff --git a/src/nt/ntnameValue.h b/src/nt/ntnameValue.h index d5e5a93..1101ed9 100644 --- a/src/nt/ntnameValue.h +++ b/src/nt/ntnameValue.h @@ -7,8 +7,23 @@ #ifndef NTNAMEVALUE_H #define NTNAMEVALUE_H +#ifdef epicsExportSharedSymbols +# define ntnameValueEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + +#include +#include + +#ifdef ntnameValueEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef ntnameValueEpicsExportSharedSymbols +#endif + #include +#include + namespace epics { namespace nt { class NTNameValue; @@ -111,7 +126,7 @@ typedef std::tr1::shared_ptr NTNameValueBuilderPtr; * Convenience Class for NTNameValue * @author mrk */ -class NTNameValue +class epicsShareClass NTNameValue { public: POINTER_DEFINITIONS(NTNameValue); diff --git a/src/nt/ntndarray.cpp b/src/nt/ntndarray.cpp index b6c7d65..0c8b7cd 100644 --- a/src/nt/ntndarray.cpp +++ b/src/nt/ntndarray.cpp @@ -7,6 +7,7 @@ #include +#define epicsExportSharedSymbols #include #include diff --git a/src/nt/ntndarray.h b/src/nt/ntndarray.h index d84776b..cd4b235 100644 --- a/src/nt/ntndarray.h +++ b/src/nt/ntndarray.h @@ -7,11 +7,26 @@ #ifndef NTNDARRAY_H #define NTNDARRAY_H -#include - #include #include +#ifdef epicsExportSharedSymbols +# define ntscalarArrayEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + +#include +#include + +#ifdef ntscalarArrayEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef ntscalarArrayEpicsExportSharedSymbols +#endif + +#include + +#include + namespace epics { namespace nt { class NTNDArray; @@ -108,7 +123,7 @@ typedef std::tr1::shared_ptr NTNDArrayBuilderPtr; * Convenience Class for NTNDArray * @author dgh */ -class NTNDArray +class epicsShareClass NTNDArray { public: POINTER_DEFINITIONS(NTNDArray); diff --git a/src/nt/ntscalar.cpp b/src/nt/ntscalar.cpp index 0f9d624..969a4f2 100644 --- a/src/nt/ntscalar.cpp +++ b/src/nt/ntscalar.cpp @@ -5,6 +5,7 @@ * in file LICENSE that is included with this distribution. */ +#define epicsExportSharedSymbols #include #include diff --git a/src/nt/ntscalar.h b/src/nt/ntscalar.h index bffca71..3e04f6f 100644 --- a/src/nt/ntscalar.h +++ b/src/nt/ntscalar.h @@ -7,10 +7,23 @@ #ifndef NTSCALAR_H #define NTSCALAR_H -#include +#ifdef epicsExportSharedSymbols +# define ntscalarEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + #include #include +#ifdef ntscalarEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef ntscalarEpicsExportSharedSymbols +#endif + +#include + +#include + namespace epics { namespace nt { class NTScalar; @@ -126,7 +139,7 @@ typedef std::tr1::shared_ptr NTScalarBuilderPtr; * Convenience Class for NTScalar * @author mrk */ -class NTScalar +class epicsShareClass NTScalar { public: POINTER_DEFINITIONS(NTScalar); diff --git a/src/nt/ntscalarArray.cpp b/src/nt/ntscalarArray.cpp index e510eb3..07bc2d2 100644 --- a/src/nt/ntscalarArray.cpp +++ b/src/nt/ntscalarArray.cpp @@ -5,6 +5,7 @@ * in file LICENSE that is included with this distribution. */ +#define epicsExportSharedSymbols #include #include diff --git a/src/nt/ntscalarArray.h b/src/nt/ntscalarArray.h index b94e65a..cc92d71 100644 --- a/src/nt/ntscalarArray.h +++ b/src/nt/ntscalarArray.h @@ -7,10 +7,24 @@ #ifndef NTSCALARARRAY_H #define NTSCALARARRAY_H -#include +#ifdef epicsExportSharedSymbols +# define ntscalarArrayEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + #include #include +#ifdef ntscalarArrayEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef ntscalarArrayEpicsExportSharedSymbols +#endif + +#include + +#include + + namespace epics { namespace nt { class NTScalarArray; @@ -126,7 +140,7 @@ typedef std::tr1::shared_ptr NTScalarArrayBuilderP * Convenience Class for NTScalarArray * @author mrk */ -class NTScalarArray +class epicsShareClass NTScalarArray { public: POINTER_DEFINITIONS(NTScalarArray); diff --git a/src/nt/nttable.cpp b/src/nt/nttable.cpp index 240d6b9..e455cf8 100644 --- a/src/nt/nttable.cpp +++ b/src/nt/nttable.cpp @@ -7,6 +7,7 @@ #include +#define epicsExportSharedSymbols #include #include diff --git a/src/nt/nttable.h b/src/nt/nttable.h index 2746397..6272951 100644 --- a/src/nt/nttable.h +++ b/src/nt/nttable.h @@ -7,11 +7,26 @@ #ifndef NTTABLE_H #define NTTABLE_H -#include - #include #include +#ifdef epicsExportSharedSymbols +# define nttableEpicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + +#include +#include + +#ifdef nttableEpicsExportSharedSymbols +# define epicsExportSharedSymbols +# undef nttableEpicsExportSharedSymbols +#endif + +#include + +#include + namespace epics { namespace nt { class NTTable; @@ -114,7 +129,7 @@ typedef std::tr1::shared_ptr NTTableBuilderPtr; * Convenience Class for NTTable * @author mrk */ -class NTTable +class epicsShareClass NTTable { public: POINTER_DEFINITIONS(NTTable); diff --git a/src/nt/ntutils.cpp b/src/nt/ntutils.cpp index a736082..0e38f31 100644 --- a/src/nt/ntutils.cpp +++ b/src/nt/ntutils.cpp @@ -5,6 +5,7 @@ * in file LICENSE that is included with this distribution. */ +#define epicsExportSharedSymbols #include using namespace std; diff --git a/src/nt/ntutils.h b/src/nt/ntutils.h index 3e99336..a1d100f 100644 --- a/src/nt/ntutils.h +++ b/src/nt/ntutils.h @@ -8,6 +8,7 @@ #define NTUTILS_H #include +#include namespace epics { namespace nt { @@ -15,7 +16,7 @@ namespace epics { namespace nt { * Utility methods for NT types. * @author mse */ -class NTUtils { +class epicsShareClass NTUtils { public: /**