UAVCAN_EXPORT

This commit is contained in:
Pavel Kirienko
2014-04-08 15:40:51 +04:00
parent 159b14e129
commit e8fa4a2369
55 changed files with 187 additions and 153 deletions
+9 -7
View File
@@ -28,7 +28,7 @@ enum ArrayMode { ArrayModeStatic, ArrayModeDynamic };
template <unsigned Size>
class StaticArrayBase
class UAVCAN_EXPORT StaticArrayBase
{
public:
enum { SizeBitLen = 0 };
@@ -57,7 +57,7 @@ protected:
template <unsigned MaxSize>
class DynamicArrayBase
class UAVCAN_EXPORT DynamicArrayBase
{
protected:
typedef IntegerSpec<IntegerBitLen<MaxSize>::Result, SignednessUnsigned, CastModeSaturate> RawSizeType;
@@ -123,8 +123,8 @@ public:
* Statically allocated array with optional dynamic-like behavior
*/
template <typename T, ArrayMode ArrayMode, unsigned MaxSize>
class ArrayImpl : public Select<ArrayMode == ArrayModeDynamic,
DynamicArrayBase<MaxSize>, StaticArrayBase<MaxSize> >::Result
class UAVCAN_EXPORT ArrayImpl : public Select<ArrayMode == ArrayModeDynamic,
DynamicArrayBase<MaxSize>, StaticArrayBase<MaxSize> >::Result
{
typedef ArrayImpl<T, ArrayMode, MaxSize> SelfType;
typedef typename Select<ArrayMode == ArrayModeDynamic,
@@ -198,7 +198,7 @@ public:
* Bit array specialization
*/
template <unsigned MaxSize, ArrayMode ArrayMode, CastMode CastMode>
class ArrayImpl<IntegerSpec<1, SignednessUnsigned, CastMode>, ArrayMode, MaxSize>
class UAVCAN_EXPORT ArrayImpl<IntegerSpec<1, SignednessUnsigned, CastMode>, ArrayMode, MaxSize>
: public std::bitset<MaxSize>
, public Select<ArrayMode == ArrayModeDynamic, DynamicArrayBase<MaxSize>, StaticArrayBase<MaxSize> >::Result
{
@@ -228,7 +228,7 @@ template <typename T, ArrayMode ArrayMode> class ArrayImpl<T, ArrayMode, 0>;
template <typename T, ArrayMode ArrayMode, unsigned MaxSize_>
class Array : public ArrayImpl<T, ArrayMode, MaxSize_>
class UAVCAN_EXPORT Array : public ArrayImpl<T, ArrayMode, MaxSize_>
{
typedef ArrayImpl<T, ArrayMode, MaxSize_> Base;
typedef Array<T, ArrayMode, MaxSize_> SelfType;
@@ -691,12 +691,14 @@ public:
};
template <typename R, typename T, ArrayMode ArrayMode, unsigned MaxSize>
UAVCAN_EXPORT
inline bool operator==(const R& rhs, const Array<T, ArrayMode, MaxSize>& lhs)
{
return lhs.operator==(rhs);
}
template <typename R, typename T, ArrayMode ArrayMode, unsigned MaxSize>
UAVCAN_EXPORT
inline bool operator!=(const R& rhs, const Array<T, ArrayMode, MaxSize>& lhs)
{
return lhs.operator!=(rhs);
@@ -704,7 +706,7 @@ inline bool operator!=(const R& rhs, const Array<T, ArrayMode, MaxSize>& lhs)
template <typename T, ArrayMode ArrayMode, unsigned MaxSize>
class YamlStreamer<Array<T, ArrayMode, MaxSize> >
class UAVCAN_EXPORT YamlStreamer<Array<T, ArrayMode, MaxSize> >
{
typedef Array<T, ArrayMode, MaxSize> ArrayType;
@@ -8,15 +8,16 @@
#include <string>
#include <uavcan/stdint.hpp>
#include <uavcan/util/compile_time.hpp>
#include <uavcan/impl_constants.hpp>
namespace uavcan
{
class ITransferBuffer;
class UAVCAN_EXPORT ITransferBuffer;
void bitarrayCopy(const unsigned char* src_org, int src_offset, int src_len, unsigned char* dst_org, int dst_offset);
class BitStream
class UAVCAN_EXPORT BitStream
{
enum { MaxBytesPerRW = 16 };
@@ -21,7 +21,7 @@ namespace uavcan
#if UAVCAN_CPP_VERSION >= UAVCAN_CPP11
template <typename ArrayType_>
class CharArrayFormatter
class UAVCAN_EXPORT CharArrayFormatter
{
ArrayType_& array_;
@@ -99,7 +99,7 @@ public:
#else
template <typename ArrayType_>
class CharArrayFormatter
class UAVCAN_EXPORT CharArrayFormatter
{
ArrayType_& array_;
@@ -34,7 +34,7 @@ struct NativeFloatSelector
};
class IEEE754Converter
class UAVCAN_EXPORT IEEE754Converter
{
// TODO: Non-IEEE float support for float32 and float64
static uint16_t nativeNonIeeeToHalf(float value);
@@ -102,7 +102,7 @@ template <> struct IEEE754Limits<64>
template <unsigned BitLen_, CastMode CastMode>
class FloatSpec : public IEEE754Limits<BitLen_>
class UAVCAN_EXPORT FloatSpec : public IEEE754Limits<BitLen_>
{
FloatSpec();
@@ -184,7 +184,7 @@ private:
template <unsigned BitLen, CastMode CastMode>
struct YamlStreamer<FloatSpec<BitLen, CastMode> >
struct UAVCAN_EXPORT YamlStreamer<FloatSpec<BitLen, CastMode> >
{
typedef typename FloatSpec<BitLen, CastMode>::StorageType StorageType;
@@ -17,7 +17,7 @@ namespace uavcan
enum Signedness { SignednessUnsigned, SignednessSigned };
template <unsigned BitLen_, Signedness Signedness, CastMode CastMode>
class IntegerSpec
class UAVCAN_EXPORT IntegerSpec
{
struct ErrorNoSuchInteger;
@@ -132,7 +132,7 @@ struct IsIntegerSpec<IntegerSpec<BitLen, Signedness, CastMode> >
template <unsigned BitLen, Signedness Signedness, CastMode CastMode>
struct YamlStreamer<IntegerSpec<BitLen, Signedness, CastMode> >
struct UAVCAN_EXPORT YamlStreamer<IntegerSpec<BitLen, Signedness, CastMode> >
{
typedef IntegerSpec<BitLen, Signedness, CastMode> RawType;
typedef typename RawType::StorageType StorageType;
@@ -8,13 +8,14 @@
#include <limits>
#include <string>
#include <uavcan/stdint.hpp>
#include <uavcan/impl_constants.hpp>
#include <uavcan/util/compile_time.hpp>
#include <uavcan/marshal/bit_stream.hpp>
namespace uavcan
{
class ScalarCodec
class UAVCAN_EXPORT ScalarCodec
{
BitStream& stream_;
@@ -5,6 +5,7 @@
#pragma once
#include <uavcan/util/compile_time.hpp>
#include <uavcan/impl_constants.hpp>
namespace uavcan
{
@@ -64,6 +65,6 @@ public:
template <typename T>
struct YamlStreamer;
struct UAVCAN_EXPORT YamlStreamer;
}