From 28e82797c24f8421dfbd8e953711d20ea641c397 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sun, 31 May 2015 08:12:46 +0300 Subject: [PATCH] Optimized padding, added more sizeof() outputs --- libuavcan/include/uavcan/transport/transfer_listener.hpp | 4 ++-- libuavcan/test/node/service_server.cpp | 3 +++ .../dynamic_node_id_server/distributed/server.cpp | 8 ++++++++ libuavcan/test/transport/transfer_listener.cpp | 7 +++++++ libuavcan/test/transport/transfer_receiver.cpp | 2 ++ 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/libuavcan/include/uavcan/transport/transfer_listener.hpp b/libuavcan/include/uavcan/transport/transfer_listener.hpp index 6b57c25e99..66bfe9f6f7 100644 --- a/libuavcan/include/uavcan/transport/transfer_listener.hpp +++ b/libuavcan/include/uavcan/transport/transfer_listener.hpp @@ -99,10 +99,10 @@ public: class UAVCAN_EXPORT TransferListenerBase : public LinkedListNode, Noncopyable { const DataTypeDescriptor& data_type_; - const TransferCRC crc_base_; ///< Pre-initialized with data type hash, thus constant MapBase& receivers_; ITransferBufferManager& bufmgr_; TransferPerfCounter& perf_; + const TransferCRC crc_base_; ///< Pre-initialized with data type hash, thus constant bool allow_anonymous_transfers_; class TimedOutReceiverPredicate @@ -126,10 +126,10 @@ protected: MapBase& receivers, ITransferBufferManager& bufmgr) : data_type_(data_type) - , crc_base_(data_type.getSignature().toTransferCRC()) , receivers_(receivers) , bufmgr_(bufmgr) , perf_(perf) + , crc_base_(data_type.getSignature().toTransferCRC()) , allow_anonymous_transfers_(false) { } diff --git a/libuavcan/test/node/service_server.cpp b/libuavcan/test/node/service_server.cpp index 4137bb1203..ec49b27772 100644 --- a/libuavcan/test/node/service_server.cpp +++ b/libuavcan/test/node/service_server.cpp @@ -144,6 +144,9 @@ TEST(ServiceServer, Empty) uavcan::ServiceServer server(node); + std::cout << "sizeof(ServiceServer): " + << sizeof(uavcan::ServiceServer) << std::endl; + ASSERT_EQ(0, node.getDispatcher().getNumServiceRequestListeners()); ASSERT_GE(0, server.start(impl.bind())); ASSERT_EQ(1, node.getDispatcher().getNumServiceRequestListeners()); diff --git a/libuavcan/test/protocol/dynamic_node_id_server/distributed/server.cpp b/libuavcan/test/protocol/dynamic_node_id_server/distributed/server.cpp index 59a4178ebd..d6992c02c8 100644 --- a/libuavcan/test/protocol/dynamic_node_id_server/distributed/server.cpp +++ b/libuavcan/test/protocol/dynamic_node_id_server/distributed/server.cpp @@ -176,6 +176,8 @@ TEST(dynamic_node_id_server_Server, Basic) TEST(dynamic_node_id_server, ObjectSizes) { + using namespace uavcan; + using namespace uavcan::protocol::dynamic_node_id::server; using namespace uavcan::dynamic_node_id_server; std::cout << "distributed::Log: " << sizeof(distributed::Log) << std::endl; @@ -184,4 +186,10 @@ TEST(dynamic_node_id_server, ObjectSizes) std::cout << "distributed::RaftCore: " << sizeof(distributed::RaftCore) << std::endl; std::cout << "distributed::Server: " << sizeof(distributed::Server) << std::endl; std::cout << "AllocationRequestManager: " << sizeof(AllocationRequestManager) << std::endl; + + std::cout << "ServiceServer: " << sizeof(ServiceServer) << std::endl; + std::cout << "ServiceClient: " << sizeof(ServiceClient) << std::endl; + std::cout << "ServiceServer: " << sizeof(ServiceServer) << std::endl; + std::cout << "ServiceClient:" + << sizeof(ServiceClient&), 5>) << std::endl; } diff --git a/libuavcan/test/transport/transfer_listener.cpp b/libuavcan/test/transport/transfer_listener.cpp index 59d20e3374..ee3474394c 100644 --- a/libuavcan/test/transport/transfer_listener.cpp +++ b/libuavcan/test/transport/transfer_listener.cpp @@ -289,3 +289,10 @@ TEST(TransferListener, AnonymousTransfers) ASSERT_TRUE(subscriber.isEmpty()); } + +TEST(TransferListener, Sizes) +{ + using namespace uavcan; + + std::cout << "sizeof(TransferListener<64, 1, 2>): " << sizeof(TransferListener<64, 1, 2>) << std::endl; +} diff --git a/libuavcan/test/transport/transfer_receiver.cpp b/libuavcan/test/transport/transfer_receiver.cpp index 755d193c0f..6be7d99ce9 100644 --- a/libuavcan/test/transport/transfer_receiver.cpp +++ b/libuavcan/test/transport/transfer_receiver.cpp @@ -102,6 +102,8 @@ TEST(TransferReceiver, Basic) uavcan::ITransferBufferManager& bufmgr = context.bufmgr; uavcan::TransferBufferAccessor bk(context.bufmgr, RxFrameGenerator::DEFAULT_KEY); + std::cout << "sizeof(TransferReceiver): " << sizeof(TransferReceiver) << std::endl; + /* * Empty */