Pub/sub fixes

This commit is contained in:
Pavel Kirienko 2014-03-12 13:00:40 +04:00
parent ad3175a235
commit 54f920898d
3 changed files with 9 additions and 4 deletions

View File

@ -93,7 +93,7 @@ class GenericPublisher
}
}
protected:
public:
GenericPublisher(Scheduler& scheduler, IMarshalBufferProvider& buffer_provider,
MonotonicDuration max_transfer_interval = TransferSender::getDefaultMaxTransferInterval())
: max_transfer_interval_(max_transfer_interval)
@ -116,7 +116,6 @@ protected:
return genericPublish(message, transfer_type, dst_node_id, &tid, blocking_deadline);
}
public:
static MonotonicDuration getDefaultTxTimeout() { return MonotonicDuration::fromUSec(2500); }// 2500ms --> 400Hz max
static MonotonicDuration getMinTxTimeout() { return MonotonicDuration::fromUSec(200); }

View File

@ -123,7 +123,7 @@ class GenericSubscriber : Noncopyable
message_.setTransfer(&transfer);
const int decode_res = DataSpec::decode(message_, codec);
const int decode_res = DataStruct::decode(message_, codec);
// We don't need the data anymore, the memory can be reused from the callback:
transfer.release();
if (decode_res <= 0)

View File

@ -10,7 +10,7 @@ namespace uavcan
{
template <typename DataType_>
class Publisher : public GenericPublisher<DataType_, DataType_>
class Publisher : protected GenericPublisher<DataType_, DataType_>
{
typedef GenericPublisher<DataType_, DataType_> BaseType;
@ -40,6 +40,12 @@ public:
}
return publish(message, TransferTypeMessageUnicast, dst_node_id);
}
using BaseType::getDefaultTxTimeout;
using BaseType::getMinTxTimeout;
using BaseType::getTxTimeout;
using BaseType::setTxTimeout;
using BaseType::getScheduler;
};
}