Better name for anonymous transfers (automatic renaming)

This commit is contained in:
Pavel Kirienko
2015-04-08 02:40:28 +03:00
parent 042aa60773
commit df2a38c217
13 changed files with 46 additions and 46 deletions
@@ -62,11 +62,11 @@ public:
/** /**
* By default, attempt to send a transfer from passive mode will result in an error @ref ErrPassive. * By default, attempt to send a transfer from passive mode will result in an error @ref ErrPassive.
* This option allows to enable sending rogue transfers from passive mode. * This option allows to enable sending anonymous transfers from passive mode.
*/ */
void allowRogueTransfers() void allowAnonymousTransfers()
{ {
sender_->allowRogueTransfers(); sender_->allowAnonymousTransfers();
} }
INode& getNode() const { return node_; } INode& getNode() const { return node_; }
@@ -67,7 +67,7 @@ public:
TransferID getTransferID() const { return safeget<TransferID, &IncomingTransfer::getTransferID>(); } TransferID getTransferID() const { return safeget<TransferID, &IncomingTransfer::getTransferID>(); }
NodeID getSrcNodeID() const { return safeget<NodeID, &IncomingTransfer::getSrcNodeID>(); } NodeID getSrcNodeID() const { return safeget<NodeID, &IncomingTransfer::getSrcNodeID>(); }
uint8_t getIfaceIndex() const { return safeget<uint8_t, &IncomingTransfer::getIfaceIndex>(); } uint8_t getIfaceIndex() const { return safeget<uint8_t, &IncomingTransfer::getIfaceIndex>(); }
bool isRogueTransfer() const { return safeget<bool, &IncomingTransfer::isRogueTransfer>(); } bool isAnonymousTransfer() const { return safeget<bool, &IncomingTransfer::isAnonymousTransfer>(); }
}; };
/** /**
@@ -198,12 +198,12 @@ protected:
} }
/** /**
* By default, rogue transfers will be ignored. * By default, anonymous transfers will be ignored.
* This option allows to enable reception of rogue transfers. * This option allows to enable reception of anonymous transfers.
*/ */
void allowRogueTransfers() void allowAnonymousTransfers()
{ {
forwarder_->allowRogueTransfers(); forwarder_->allowAnonymousTransfers();
} }
/** /**
+1 -1
View File
@@ -87,7 +87,7 @@ public:
*/ */
using BaseType::init; using BaseType::init;
using BaseType::allowRogueTransfers; using BaseType::allowAnonymousTransfers;
using BaseType::getTransferSender; using BaseType::getTransferSender;
using BaseType::getMinTxTimeout; using BaseType::getMinTxTimeout;
using BaseType::getMaxTxTimeout; using BaseType::getMaxTxTimeout;
+1 -1
View File
@@ -111,7 +111,7 @@ public:
return BaseType::startAsMessageListener(); return BaseType::startAsMessageListener();
} }
using BaseType::allowRogueTransfers; using BaseType::allowAnonymousTransfers;
using BaseType::stop; using BaseType::stop;
using BaseType::getFailureCount; using BaseType::getFailureCount;
}; };
@@ -51,9 +51,9 @@ public:
virtual void release() { } virtual void release() { }
/** /**
* Whether this is a rogue transfer * Whether this is a anonymous transfer
*/ */
virtual bool isRogueTransfer() const { return false; } virtual bool isAnonymousTransfer() const { return false; }
MonotonicTime getMonotonicTimestamp() const { return ts_mono_; } MonotonicTime getMonotonicTimestamp() const { return ts_mono_; }
UtcTime getUtcTimestamp() const { return ts_utc_; } UtcTime getUtcTimestamp() const { return ts_utc_; }
@@ -73,7 +73,7 @@ class UAVCAN_EXPORT SingleFrameIncomingTransfer : public IncomingTransfer
public: public:
explicit SingleFrameIncomingTransfer(const RxFrame& frm); explicit SingleFrameIncomingTransfer(const RxFrame& frm);
virtual int read(unsigned offset, uint8_t* data, unsigned len) const; virtual int read(unsigned offset, uint8_t* data, unsigned len) const;
virtual bool isRogueTransfer() const; virtual bool isAnonymousTransfer() const;
}; };
/** /**
@@ -99,7 +99,7 @@ class UAVCAN_EXPORT TransferListenerBase : public LinkedListNode<TransferListene
MapBase<TransferBufferManagerKey, TransferReceiver>& receivers_; MapBase<TransferBufferManagerKey, TransferReceiver>& receivers_;
ITransferBufferManager& bufmgr_; ITransferBufferManager& bufmgr_;
TransferPerfCounter& perf_; TransferPerfCounter& perf_;
bool allow_rogue_transfers_; bool allow_anonymous_transfers_;
class TimedOutReceiverPredicate class TimedOutReceiverPredicate
{ {
@@ -126,13 +126,13 @@ protected:
, receivers_(receivers) , receivers_(receivers)
, bufmgr_(bufmgr) , bufmgr_(bufmgr)
, perf_(perf) , perf_(perf)
, allow_rogue_transfers_(false) , allow_anonymous_transfers_(false)
{ } { }
virtual ~TransferListenerBase() { } virtual ~TransferListenerBase() { }
void handleReception(TransferReceiver& receiver, const RxFrame& frame, TransferBufferAccessor& tba); void handleReception(TransferReceiver& receiver, const RxFrame& frame, TransferBufferAccessor& tba);
void handleRogueTransferReception(const RxFrame& frame); void handleAnonymousTransferReception(const RxFrame& frame);
virtual void handleIncomingTransfer(IncomingTransfer& transfer) = 0; virtual void handleIncomingTransfer(IncomingTransfer& transfer) = 0;
@@ -140,10 +140,10 @@ public:
const DataTypeDescriptor& getDataTypeDescriptor() const { return data_type_; } const DataTypeDescriptor& getDataTypeDescriptor() const { return data_type_; }
/** /**
* By default, rogue transfers will be ignored. * By default, anonymous transfers will be ignored.
* This option allows to enable reception of rogue transfers. * This option allows to enable reception of anonymous transfers.
*/ */
void allowRogueTransfers() { allow_rogue_transfers_ = true; } void allowAnonymousTransfers() { allow_anonymous_transfers_ = true; }
void cleanup(MonotonicTime ts); void cleanup(MonotonicTime ts);
@@ -25,7 +25,7 @@ class UAVCAN_EXPORT TransferSender
const TransferCRC crc_base_; const TransferCRC crc_base_;
CanIOFlags flags_; CanIOFlags flags_;
uint8_t iface_mask_; uint8_t iface_mask_;
bool allow_rogue_transfers_; bool allow_anonymous_transfers_;
Dispatcher& dispatcher_; Dispatcher& dispatcher_;
@@ -47,7 +47,7 @@ public:
, crc_base_(data_type.getSignature().toTransferCRC()) , crc_base_(data_type.getSignature().toTransferCRC())
, flags_(CanIOFlags(0)) , flags_(CanIOFlags(0))
, iface_mask_(AllIfacesMask) , iface_mask_(AllIfacesMask)
, allow_rogue_transfers_(false) , allow_anonymous_transfers_(false)
, dispatcher_(dispatcher) , dispatcher_(dispatcher)
{ } { }
@@ -62,13 +62,13 @@ public:
} }
/** /**
* Rogue transfers (i.e. transfers that don't carry a valid Source Node ID) can be sent if * Anonymous transfers (i.e. transfers that don't carry a valid Source Node ID) can be sent if
* the local node is configured in passive mode (i.e. the node doesn't have a valid Node ID). * the local node is configured in passive mode (i.e. the node doesn't have a valid Node ID).
* By default, this class will return an error if it is asked to send a transfer while the * By default, this class will return an error if it is asked to send a transfer while the
* node is configured in passive mode. However, if this option is enabled, it will be possible * node is configured in passive mode. However, if this option is enabled, it will be possible
* to send rogue transfers from passive mode. * to send anonymous transfers from passive mode.
*/ */
void allowRogueTransfers() { allow_rogue_transfers_ = true; } void allowAnonymousTransfers() { allow_anonymous_transfers_ = true; }
/** /**
* Send with explicit Transfer ID. * Send with explicit Transfer ID.
@@ -31,7 +31,7 @@ void DynamicNodeIDAllocationClient::handleTimerEvent(const TimerEvent&)
void DynamicNodeIDAllocationClient::handleDynamicNodeIDAllocation( void DynamicNodeIDAllocationClient::handleDynamicNodeIDAllocation(
const ReceivedDataStructure<protocol::DynamicNodeIDAllocation>& msg) const ReceivedDataStructure<protocol::DynamicNodeIDAllocation>& msg)
{ {
if ((msg.short_unique_id != short_unique_id_) || msg.isRogueTransfer()) if ((msg.short_unique_id != short_unique_id_) || msg.isAnonymousTransfer())
{ {
return; // Not ours return; // Not ours
} }
@@ -83,7 +83,7 @@ int DynamicNodeIDAllocationClient::startImpl()
{ {
return res; return res;
} }
dnida_pub_.allowRogueTransfers(); dnida_pub_.allowAnonymousTransfers();
res = dnida_sub_.start( res = dnida_sub_.start(
DynamicNodeIDAllocationCallback(this, &DynamicNodeIDAllocationClient::handleDynamicNodeIDAllocation)); DynamicNodeIDAllocationCallback(this, &DynamicNodeIDAllocationClient::handleDynamicNodeIDAllocation));
@@ -91,7 +91,7 @@ int DynamicNodeIDAllocationClient::startImpl()
{ {
return res; return res;
} }
dnida_sub_.allowRogueTransfers(); dnida_sub_.allowAnonymousTransfers();
startPeriodic( startPeriodic(
MonotonicDuration::fromMSec(protocol::DynamicNodeIDAllocation::ALLOCATEE_MIN_BROADCAST_INTERVAL_SEC * 1000)); MonotonicDuration::fromMSec(protocol::DynamicNodeIDAllocation::ALLOCATEE_MIN_BROADCAST_INTERVAL_SEC * 1000));
@@ -50,7 +50,7 @@ int SingleFrameIncomingTransfer::read(unsigned offset, uint8_t* data, unsigned l
return int(len); return int(len);
} }
bool SingleFrameIncomingTransfer::isRogueTransfer() const bool SingleFrameIncomingTransfer::isAnonymousTransfer() const
{ {
return (getTransferType() == TransferTypeMessageBroadcast) && getSrcNodeID().isBroadcast(); return (getTransferType() == TransferTypeMessageBroadcast) && getSrcNodeID().isBroadcast();
} }
@@ -177,9 +177,9 @@ void TransferListenerBase::handleReception(TransferReceiver& receiver, const RxF
} }
} }
void TransferListenerBase::handleRogueTransferReception(const RxFrame& frame) void TransferListenerBase::handleAnonymousTransferReception(const RxFrame& frame)
{ {
if (allow_rogue_transfers_) if (allow_anonymous_transfers_)
{ {
perf_.addRxTransfer(); perf_.addRxTransfer();
SingleFrameIncomingTransfer it(frame); SingleFrameIncomingTransfer it(frame);
@@ -221,9 +221,9 @@ void TransferListenerBase::handleFrame(const RxFrame& frame)
else if (frame.getSrcNodeID().isBroadcast() && else if (frame.getSrcNodeID().isBroadcast() &&
frame.isFirst() && frame.isFirst() &&
frame.isLast() && frame.isLast() &&
frame.getDstNodeID().isBroadcast()) // Rogue transfer frame.getDstNodeID().isBroadcast()) // Anonymous transfer
{ {
handleRogueTransferReception(frame); handleAnonymousTransferReception(frame);
} }
else else
{ {
@@ -30,11 +30,11 @@ int TransferSender::send(const uint8_t* payload, unsigned payload_len, Monotonic
/* /*
* Checking if we're allowed to send. * Checking if we're allowed to send.
* In passive mode we can send only rogue transfers, if they are enabled. * In passive mode we can send only anonymous transfers, if they are enabled.
*/ */
if (dispatcher_.isPassiveMode()) if (dispatcher_.isPassiveMode())
{ {
const bool allow = allow_rogue_transfers_ && const bool allow = allow_anonymous_transfers_ &&
(transfer_type == TransferTypeMessageBroadcast) && (transfer_type == TransferTypeMessageBroadcast) &&
(int(payload_len) <= frame.getMaxPayloadLen()); (int(payload_len) <= frame.getMaxPayloadLen());
if (!allow) if (!allow)
@@ -54,11 +54,11 @@ TEST(DynamicNodeIDAllocationClient, Basic)
/* /*
* Initializing subscriber * Initializing subscriber
* Rogue transfers must be enabled * Anonymous transfers must be enabled
*/ */
SubscriberWithCollector<uavcan::protocol::DynamicNodeIDAllocation> dynid_sub(nodes.a); SubscriberWithCollector<uavcan::protocol::DynamicNodeIDAllocation> dynid_sub(nodes.a);
ASSERT_LE(0, dynid_sub.start()); ASSERT_LE(0, dynid_sub.start());
dynid_sub.subscriber.allowRogueTransfers(); dynid_sub.subscriber.allowAnonymousTransfers();
/* /*
* Monitoring requests at 1Hz * Monitoring requests at 1Hz
@@ -86,7 +86,7 @@ TEST(DynamicNodeIDAllocationClient, Basic)
/* /*
* Sending a bunch of responses * Sending a bunch of responses
* Note that response transfers are NOT rogue * Note that response transfers are NOT anonymous
*/ */
uavcan::Publisher<uavcan::protocol::DynamicNodeIDAllocation> dynid_pub(nodes.a); uavcan::Publisher<uavcan::protocol::DynamicNodeIDAllocation> dynid_pub(nodes.a);
ASSERT_LE(0, dynid_pub.init()); ASSERT_LE(0, dynid_pub.init());
@@ -245,7 +245,7 @@ TEST(TransferListener, MaximumTransferLength)
} }
TEST(TransferListener, RogueTransfers) TEST(TransferListener, AnonymousTransfers)
{ {
const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A"); const uavcan::DataTypeDescriptor type(uavcan::DataTypeKindMessage, 123, uavcan::DataTypeSignature(123456789), "A");
@@ -264,15 +264,15 @@ TEST(TransferListener, RogueTransfers)
emulator.send(transfers); emulator.send(transfers);
// Nothing will be received, because rogue transfers are disabled by default // Nothing will be received, because anonymous transfers are disabled by default
ASSERT_TRUE(subscriber.isEmpty()); ASSERT_TRUE(subscriber.isEmpty());
subscriber.allowRogueTransfers(); subscriber.allowAnonymousTransfers();
// Re-send everything again // Re-send everything again
emulator.send(transfers); emulator.send(transfers);
// Now the rogue transfers are enabled // Now the anonymous transfers are enabled
ASSERT_TRUE(subscriber.matchAndPop(transfers[1])); // Only SFT broadcast will be accepted ASSERT_TRUE(subscriber.matchAndPop(transfers[1])); // Only SFT broadcast will be accepted
ASSERT_TRUE(subscriber.matchAndPop(transfers[3])); ASSERT_TRUE(subscriber.matchAndPop(transfers[3]));
+1 -1
View File
@@ -241,7 +241,7 @@ TEST(TransferSender, PassiveMode)
uavcan::TransferTypeMessageBroadcast, uavcan::NodeID::Broadcast)); uavcan::TransferTypeMessageBroadcast, uavcan::NodeID::Broadcast));
// Overriding the default // Overriding the default
sender.allowRogueTransfers(); sender.allowAnonymousTransfers();
// OK, now we can broadcast in any mode // OK, now we can broadcast in any mode
ASSERT_LE(0, sender.send(Payload, sizeof(Payload), tsMono(1000), uavcan::MonotonicTime(), ASSERT_LE(0, sender.send(Payload, sizeof(Payload), tsMono(1000), uavcan::MonotonicTime(),
@@ -132,11 +132,11 @@ public:
const bool single_frame = dynamic_cast<uavcan::SingleFrameIncomingTransfer*>(&transfer) != NULL; const bool single_frame = dynamic_cast<uavcan::SingleFrameIncomingTransfer*>(&transfer) != NULL;
const bool rogue = single_frame && const bool anonymous = single_frame &&
transfer.getSrcNodeID().isBroadcast() && transfer.getSrcNodeID().isBroadcast() &&
(transfer.getTransferType() == uavcan::TransferTypeMessageBroadcast); (transfer.getTransferType() == uavcan::TransferTypeMessageBroadcast);
ASSERT_EQ(rogue, transfer.isRogueTransfer()); ASSERT_EQ(anonymous, transfer.isAnonymousTransfer());
} }
bool matchAndPop(const Transfer& reference) bool matchAndPop(const Transfer& reference)