Automated style fixes in order to bring the code a little bit closer to compliance with MISRA C++ rules. No changes in logic.

This commit is contained in:
Pavel Kirienko
2014-03-25 03:04:36 +04:00
parent cce657e1fe
commit 0cc627016a
64 changed files with 777 additions and 283 deletions
@@ -24,8 +24,11 @@ namespace uavcan
template <typename DataSpec, typename DataStruct>
class GenericPublisher
{
enum { Qos = (DataTypeKind(DataSpec::DataTypeKind) == DataTypeKindMessage) ?
CanTxQueue::Volatile : CanTxQueue::Persistent };
enum
{
Qos = (DataTypeKind(DataSpec::DataTypeKind) == DataTypeKindMessage) ?
CanTxQueue::Volatile : CanTxQueue::Persistent
};
const MonotonicDuration max_transfer_interval_; // TODO: memory usage can be reduced
MonotonicDuration tx_timeout_;
@@ -35,7 +38,9 @@ class GenericPublisher
bool checkInit()
{
if (sender_)
{
return true;
}
GlobalDataTypeRegistry::instance().freeze();
@@ -63,11 +68,15 @@ class GenericPublisher
TransferID* tid, MonotonicTime blocking_deadline)
{
if (!checkInit())
{
return -1;
}
IMarshalBuffer* const buf = getBuffer();
if (!buf)
{
return -1;
}
{
BitStream bitstream(*buf);
@@ -94,9 +103,9 @@ class GenericPublisher
public:
GenericPublisher(INode& node, MonotonicDuration tx_timeout,
MonotonicDuration max_transfer_interval = TransferSender::getDefaultMaxTransferInterval())
: max_transfer_interval_(max_transfer_interval)
, tx_timeout_(tx_timeout)
, node_(node)
: max_transfer_interval_(max_transfer_interval)
, tx_timeout_(tx_timeout)
, node_(node)
{
setTxTimeout(tx_timeout);
#if UAVCAN_DEBUG
@@ -22,7 +22,7 @@ class ReceivedDataStructure : public DataType_
{
const IncomingTransfer* transfer_;
template <typename Ret, Ret (IncomingTransfer::*Fun)() const>
template <typename Ret, Ret(IncomingTransfer::*Fun) () const>
Ret safeget() const
{
if (!transfer_)
@@ -60,8 +60,8 @@ template <typename Stream, typename DataType>
static Stream& operator<<(Stream& s, const ReceivedDataStructure<DataType>& rds)
{
s << "# Received struct ts_m=" << rds.getMonotonicTimestamp()
<< " ts_utc=" << rds.getUtcTimestamp()
<< " snid=" << int(rds.getSrcNodeID().get()) << "\n";
<< " ts_utc=" << rds.getUtcTimestamp()
<< " snid=" << int(rds.getSrcNodeID().get()) << "\n";
s << static_cast<const DataType&>(rds);
return s;
}
@@ -98,8 +98,8 @@ class GenericSubscriber : Noncopyable
public:
TransferForwarder(SelfType& obj, const DataTypeDescriptor& data_type, IAllocator& allocator)
: TransferListenerType(data_type, allocator)
, obj_(obj)
: TransferListenerType(data_type, allocator)
, obj_(obj)
{ }
};
@@ -116,7 +116,9 @@ class GenericSubscriber : Noncopyable
bool checkInit()
{
if (forwarder_)
{
return true;
}
GlobalDataTypeRegistry::instance().freeze();
@@ -161,7 +163,7 @@ class GenericSubscriber : Noncopyable
}
}
int genericStart(bool(Dispatcher::*registration_method)(TransferListenerBase* listener))
int genericStart(bool (Dispatcher::*registration_method)(TransferListenerBase* listener))
{
stop();
@@ -182,8 +184,8 @@ class GenericSubscriber : Noncopyable
protected:
explicit GenericSubscriber(INode& node)
: node_(node)
, failure_count_(0)
: node_(node)
, failure_count_(0)
{ }
virtual ~GenericSubscriber() { stop(); }
@@ -13,7 +13,7 @@
#include <uavcan/fatal_error.hpp>
#include <uavcan/linked_list.hpp>
#if UAVCAN_DEBUG
#include <uavcan/debug.hpp>
# include <uavcan/debug.hpp>
#endif
namespace uavcan
@@ -30,7 +30,7 @@ class GlobalDataTypeRegistry : Noncopyable
Entry() { }
Entry(DataTypeKind kind, DataTypeID id, const DataTypeSignature& signature, const char* name)
: descriptor(kind, id, signature, name)
: descriptor(kind, id, signature, name)
{ }
};
@@ -75,19 +75,25 @@ public:
RegistResult regist(DataTypeID id)
{
if (isFrozen())
{
return RegistResultFrozen;
}
static Entry entry;
{
const RegistResult remove_res = remove(&entry);
if (remove_res != RegistResultOk)
{
return remove_res;
}
}
entry = Entry(DataTypeKind(Type::DataTypeKind), id, Type::getDataTypeSignature(), Type::getDataTypeFullName());
{
const RegistResult remove_res = remove(&entry);
if (remove_res != RegistResultOk)
{
return remove_res;
}
}
return registImpl(&entry);
}
@@ -114,9 +120,13 @@ public:
int(frozen_), getNumMessageTypes(), getNumServiceTypes());
frozen_ = false;
while (msgs_.get())
{
msgs_.remove(msgs_.get());
}
while (srvs_.get())
{
srvs_.remove(srvs_.get());
}
}
#endif
};
@@ -131,7 +141,9 @@ struct DefaultDataTypeRegistrator
GlobalDataTypeRegistry::instance().regist<Type>(Type::DefaultDataTypeID);
if (res != GlobalDataTypeRegistry::RegistResultOk)
{
handleFatalError("Type registration failed");
}
}
};
@@ -59,7 +59,9 @@ public:
IMarshalBuffer* getBuffer(unsigned int size)
{
if (size > MaxSize)
{
return NULL;
}
buffer_.reset();
return &buffer_;
}
+1 -1
View File
@@ -19,7 +19,7 @@ public:
explicit Publisher(INode& node, MonotonicDuration tx_timeout = getDefaultTxTimeout(),
MonotonicDuration max_transfer_interval = TransferSender::getDefaultMaxTransferInterval())
: BaseType(node, tx_timeout, max_transfer_interval)
: BaseType(node, tx_timeout, max_transfer_interval)
{
#if UAVCAN_DEBUG
assert(getTxTimeout() == tx_timeout); // Making sure default values are OK
+5 -5
View File
@@ -20,7 +20,7 @@ protected:
Scheduler& scheduler_;
explicit DeadlineHandler(Scheduler& scheduler)
: scheduler_(scheduler)
: scheduler_(scheduler)
{ }
virtual ~DeadlineHandler() { stop(); }
@@ -76,10 +76,10 @@ class Scheduler : Noncopyable
public:
Scheduler(ICanDriver& can_driver, IAllocator& allocator, ISystemClock& sysclock, IOutgoingTransferRegistry& otr)
: dispatcher_(can_driver, allocator, sysclock, otr)
, prev_cleanup_ts_(sysclock.getMonotonic())
, deadline_resolution_(MonotonicDuration::fromMSec(DefaultDeadlineResolutionMs))
, cleanup_period_(MonotonicDuration::fromMSec(DefaultCleanupPeriodMs))
: dispatcher_(can_driver, allocator, sysclock, otr)
, prev_cleanup_ts_(sysclock.getMonotonic())
, deadline_resolution_(MonotonicDuration::fromMSec(DefaultDeadlineResolutionMs))
, cleanup_period_(MonotonicDuration::fromMSec(DefaultCleanupPeriodMs))
{ }
int spin(MonotonicTime deadline);
@@ -29,9 +29,9 @@ struct ServiceCallResult
ResponseFieldType& response; ///< Either response contents or unspecified response structure
ServiceCallResult(Status status, NodeID server_node_id, ResponseFieldType& response)
: status(status)
, server_node_id(server_node_id)
, response(response)
: status(status)
, server_node_id(server_node_id)
, response(response)
{
assert(server_node_id.isUnicast());
assert(status == Success || status == ErrorTimeout);
@@ -44,21 +44,25 @@ template <typename Stream, typename DataType>
static Stream& operator<<(Stream& s, const ServiceCallResult<DataType>& scr)
{
s << "# Service call result [" << DataType::getDataTypeFullName() << "] "
<< (scr.isSuccessful() ? "OK" : "FAILURE")
<< " server_node_id=" << int(scr.server_node_id.get()) << "\n";
<< (scr.isSuccessful() ? "OK" : "FAILURE")
<< " server_node_id=" << int(scr.server_node_id.get()) << "\n";
if (scr.isSuccessful())
{
s << scr.response;
}
else
{
s << "# (no data)";
}
return s;
}
template <typename DataType_, typename Callback = void(*)(const ServiceCallResult<DataType_>&)>
class ServiceClient :
public GenericSubscriber<DataType_, typename DataType_::Response,
typename ServiceResponseTransferListenerInstantiationHelper<DataType_>::Type >,
public DeadlineHandler
template <typename DataType_, typename Callback = void (*)(const ServiceCallResult<DataType_>&)>
class ServiceClient
: public GenericSubscriber<DataType_, typename DataType_::Response,
typename ServiceResponseTransferListenerInstantiationHelper<DataType_>::Type >
, public DeadlineHandler
{
public:
typedef DataType_ DataType;
@@ -82,9 +86,13 @@ private:
void invokeCallback(ServiceCallResultType& result)
{
if (isCallbackValid())
{
callback_(result);
}
else
{
handleFatalError("Invalid caller callback");
}
}
void handleReceivedDataStruct(ReceivedDataStructure<ResponseType>& response)
@@ -128,12 +136,12 @@ private:
public:
explicit ServiceClient(INode& node, const Callback& callback = Callback())
: SubscriberType(node)
, DeadlineHandler(node.getScheduler())
, publisher_(node, getDefaultRequestTimeout())
, callback_(callback)
, request_timeout_(getDefaultRequestTimeout())
, pending_(false)
: SubscriberType(node)
, DeadlineHandler(node.getScheduler())
, publisher_(node, getDefaultRequestTimeout())
, callback_(callback)
, request_timeout_(getDefaultRequestTimeout())
, pending_(false)
{
setRequestTimeout(getDefaultRequestTimeout());
#if UAVCAN_DEBUG
@@ -181,7 +189,7 @@ public:
const MonotonicTime otr_deadline =
SubscriberType::getNode().getMonotonicTime() + TransferSender::getDefaultMaxTransferInterval();
TransferID* const otr_tid = SubscriberType::getNode().getDispatcher().getOutgoingTransferRegistry()
.accessOrCreate(otr_key, otr_deadline);
.accessOrCreate(otr_key, otr_deadline);
if (!otr_tid)
{
UAVCAN_TRACE("ServiceClient", "OTR access failure, dtd=%s", descr->toString().c_str());
@@ -238,7 +246,9 @@ public:
DeadlineHandler::stop();
TransferListenerType* const tl = SubscriberType::getTransferListener();
if (tl)
{
tl->stopAcceptingAnything();
}
}
bool isPending() const { return pending_; }
@@ -11,8 +11,8 @@ namespace uavcan
{
template <typename DataType_,
typename Callback = void(*)(const ReceivedDataStructure<typename DataType_::Request>&,
typename DataType_::Response&),
typename Callback = void (*)(const ReceivedDataStructure<typename DataType_::Request>&,
typename DataType_::Response&),
unsigned int NumStaticReceivers = 2,
unsigned int NumStaticBufs = 1>
class ServiceServer : public GenericSubscriber<DataType_, typename DataType_::Request,
@@ -45,10 +45,12 @@ private:
callback_(request, response_);
}
else
{
handleFatalError("Invalid service server callback");
}
const int res = publisher_.publish(response_, TransferTypeServiceResponse, request.getSrcNodeID(),
request.getTransferID());
request.getTransferID());
if (res < 0)
{
UAVCAN_TRACE("ServiceServer", "Response publication failure: %i", res);
@@ -58,10 +60,10 @@ private:
public:
explicit ServiceServer(INode& node)
: SubscriberType(node)
, publisher_(node, getDefaultTxTimeout())
, callback_()
, response_failure_count_(0)
: SubscriberType(node)
, publisher_(node, getDefaultTxTimeout())
, callback_()
, response_failure_count_(0)
{
assert(getTxTimeout() == getDefaultTxTimeout()); // Making sure it is valid
+7 -3
View File
@@ -11,7 +11,7 @@ namespace uavcan
{
template <typename DataType_,
typename Callback = void(*)(const ReceivedDataStructure<DataType_>&),
typename Callback = void (*)(const ReceivedDataStructure<DataType_>&),
unsigned int NumStaticReceivers = 2,
unsigned int NumStaticBufs = 1>
class Subscriber : public GenericSubscriber<DataType_, DataType_,
@@ -28,17 +28,21 @@ class Subscriber : public GenericSubscriber<DataType_, DataType_,
void handleReceivedDataStruct(ReceivedDataStructure<DataType_>& msg)
{
if (try_implicit_cast<bool>(callback_, true))
{
callback_(msg);
}
else
{
handleFatalError("Invalid subscriber callback");
}
}
public:
typedef DataType_ DataType;
explicit Subscriber(INode& node)
: BaseType(node)
, callback_()
: BaseType(node)
, callback_()
{
StaticAssert<DataTypeKind(DataType::DataTypeKind) == DataTypeKindMessage>::check();
}
+12 -8
View File
@@ -22,8 +22,8 @@ struct TimerEvent
MonotonicTime real_time;
TimerEvent(MonotonicTime scheduled_time, MonotonicTime real_time)
: scheduled_time(scheduled_time)
, real_time(real_time)
: scheduled_time(scheduled_time)
, real_time(real_time)
{ }
};
@@ -41,8 +41,8 @@ public:
using DeadlineHandler::getScheduler;
explicit Timer(INode& node)
: DeadlineHandler(node.getScheduler())
, period_(MonotonicDuration::getInfinite())
: DeadlineHandler(node.getScheduler())
, period_(MonotonicDuration::getInfinite())
{ }
void startOneShotWithDeadline(MonotonicTime deadline);
@@ -63,20 +63,24 @@ class TimerEventForwarder : public Timer
void handleTimerEvent(const TimerEvent& event)
{
if (try_implicit_cast<bool>(callback_, true))
{
callback_(event);
}
else
{
handleFatalError("Invalid timer callback");
}
}
public:
explicit TimerEventForwarder(INode& node)
: Timer(node)
, callback_()
: Timer(node)
, callback_()
{ }
TimerEventForwarder(INode& node, Callback callback)
: Timer(node)
, callback_(callback)
: Timer(node)
, callback_(callback)
{ }
const Callback& getCallback() const { return callback_; }