mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-20 17:23:34 +08:00
UAVCAN_EXPORT
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user