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
@@ -4,13 +4,14 @@
#pragma once
#include <uavcan/impl_constants.hpp>
#include <uavcan/node/scheduler.hpp>
#include <uavcan/node/marshal_buffer.hpp>
namespace uavcan
{
class INode
class UAVCAN_EXPORT INode
{
public:
virtual ~INode() { }
@@ -23,7 +23,7 @@ namespace uavcan
* DataStruct - instantiable class
*/
template <typename DataSpec, typename DataStruct>
class GenericPublisher
class UAVCAN_EXPORT GenericPublisher
{
enum
{
@@ -19,7 +19,7 @@ namespace uavcan
{
template <typename DataType_>
class ReceivedDataStructure : public DataType_
class UAVCAN_EXPORT ReceivedDataStructure : public DataType_
{
const IncomingTransfer* transfer_;
@@ -69,7 +69,7 @@ static Stream& operator<<(Stream& s, const ReceivedDataStructure<DataType>& rds)
template <typename DataStruct_, unsigned NumStaticReceivers_, unsigned NumStaticBufs_>
class TransferListenerInstantiationHelper
class UAVCAN_EXPORT TransferListenerInstantiationHelper
{
enum { DataTypeMaxByteLen = BitLenToByteLen<DataStruct_::MaxBitLen>::Result };
enum { NeedsBuffer = int(DataTypeMaxByteLen) > int(MaxSingleFrameTransferPayloadLen) };
@@ -83,7 +83,7 @@ public:
template <typename DataSpec, typename DataStruct, typename TransferListenerType>
class GenericSubscriber : Noncopyable
class UAVCAN_EXPORT GenericSubscriber : Noncopyable
{
typedef GenericSubscriber<DataSpec, DataStruct, TransferListenerType> SelfType;
@@ -21,7 +21,7 @@ namespace uavcan
typedef std::bitset<DataTypeID::Max + 1> DataTypeIDMask;
class GlobalDataTypeRegistry : Noncopyable
class UAVCAN_EXPORT GlobalDataTypeRegistry : Noncopyable
{
struct Entry : public LinkedListNode<Entry>
{
@@ -133,7 +133,7 @@ public:
template <typename Type>
struct DefaultDataTypeRegistrator
struct UAVCAN_EXPORT DefaultDataTypeRegistrator
{
DefaultDataTypeRegistrator()
{
@@ -4,13 +4,14 @@
#pragma once
#include <uavcan/impl_constants.hpp>
#include <uavcan/transport/transfer.hpp>
#include <uavcan/transport/transfer_buffer.hpp>
namespace uavcan
{
class IMarshalBuffer : public ITransferBuffer
class UAVCAN_EXPORT IMarshalBuffer : public ITransferBuffer
{
public:
virtual const uint8_t* getDataPtr() const = 0;
@@ -18,7 +19,7 @@ public:
};
class IMarshalBufferProvider
class UAVCAN_EXPORT IMarshalBufferProvider
{
public:
virtual ~IMarshalBufferProvider() { }
@@ -27,7 +28,7 @@ public:
template <unsigned MaxSize_ = MaxTransferPayloadLen>
class MarshalBufferProvider : public IMarshalBufferProvider
class UAVCAN_EXPORT MarshalBufferProvider : public IMarshalBufferProvider
{
class Buffer : public IMarshalBuffer
{
+1 -1
View File
@@ -29,7 +29,7 @@ namespace uavcan
template <std::size_t MemPoolSize_,
unsigned OutgoingTransferRegistryStaticEntries = 10,
unsigned OutgoingTransferMaxPayloadLen = MaxTransferPayloadLen>
class Node : public INode
class UAVCAN_EXPORT Node : public INode
{
enum
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace uavcan
{
template <typename DataType_>
class Publisher : protected GenericPublisher<DataType_, DataType_>
class UAVCAN_EXPORT Publisher : protected GenericPublisher<DataType_, DataType_>
{
typedef GenericPublisher<DataType_, DataType_> BaseType;
+4 -4
View File
@@ -11,9 +11,9 @@
namespace uavcan
{
class Scheduler;
class UAVCAN_EXPORT Scheduler;
class DeadlineHandler : public LinkedListNode<DeadlineHandler>, Noncopyable
class UAVCAN_EXPORT DeadlineHandler : public LinkedListNode<DeadlineHandler>, Noncopyable
{
MonotonicTime deadline_;
@@ -41,7 +41,7 @@ public:
};
class DeadlineScheduler : Noncopyable
class UAVCAN_EXPORT DeadlineScheduler : Noncopyable
{
LinkedListRoot<DeadlineHandler> handlers_; // Ordered by deadline, lowest first
@@ -56,7 +56,7 @@ public:
};
class Scheduler : Noncopyable
class UAVCAN_EXPORT Scheduler : Noncopyable
{
enum { DefaultDeadlineResolutionMs = 5 };
enum { MinDeadlineResolutionMs = 1 };
@@ -20,7 +20,7 @@ namespace uavcan
{
template <typename ServiceDataType>
class ServiceResponseTransferListenerInstantiationHelper
class UAVCAN_EXPORT ServiceResponseTransferListenerInstantiationHelper
{
enum { DataTypeMaxByteLen = BitLenToByteLen<ServiceDataType::Response::MaxBitLen>::Result };
public:
@@ -29,7 +29,7 @@ public:
template <typename DataType>
struct ServiceCallResult
struct UAVCAN_EXPORT ServiceCallResult
{
typedef ReceivedDataStructure<typename DataType::Response> ResponseFieldType;
@@ -76,7 +76,7 @@ template <typename DataType_,
typename Callback_ = void (*)(const ServiceCallResult<DataType_>&)
#endif
>
class ServiceClient
class UAVCAN_EXPORT ServiceClient
: public GenericSubscriber<DataType_, typename DataType_::Response,
typename ServiceResponseTransferListenerInstantiationHelper<DataType_>::Type >
, protected DeadlineHandler
@@ -29,10 +29,10 @@ template <typename DataType_,
#endif
unsigned NumStaticReceivers = 2,
unsigned NumStaticBufs = 1>
class ServiceServer : public GenericSubscriber<DataType_, typename DataType_::Request,
typename TransferListenerInstantiationHelper<typename DataType_::Request,
NumStaticReceivers,
NumStaticBufs>::Type>
class UAVCAN_EXPORT ServiceServer
: public GenericSubscriber<DataType_, typename DataType_::Request,
typename TransferListenerInstantiationHelper<typename DataType_::Request,
NumStaticReceivers, NumStaticBufs>::Type>
{
public:
typedef DataType_ DataType;
+4 -4
View File
@@ -27,10 +27,10 @@ template <typename DataType_,
#endif
unsigned NumStaticReceivers = 2,
unsigned NumStaticBufs = 1>
class Subscriber : public GenericSubscriber<DataType_, DataType_,
typename TransferListenerInstantiationHelper<DataType_,
NumStaticReceivers,
NumStaticBufs>::Type>
class UAVCAN_EXPORT Subscriber
: public GenericSubscriber<DataType_, DataType_,
typename TransferListenerInstantiationHelper<DataType_, NumStaticReceivers,
NumStaticBufs>::Type>
{
public:
typedef Callback_ Callback;
+4 -4
View File
@@ -23,9 +23,9 @@
namespace uavcan
{
class TimerBase;
class UAVCAN_EXPORT TimerBase;
struct TimerEvent
struct UAVCAN_EXPORT TimerEvent
{
MonotonicTime scheduled_time;
MonotonicTime real_time;
@@ -37,7 +37,7 @@ struct TimerEvent
};
class TimerBase : private DeadlineHandler
class UAVCAN_EXPORT TimerBase : private DeadlineHandler
{
MonotonicDuration period_;
@@ -65,7 +65,7 @@ public:
template <typename Callback_>
class TimerEventForwarder : public TimerBase
class UAVCAN_EXPORT TimerEventForwarder : public TimerBase
{
public:
typedef Callback_ Callback;