Commit 81226a82 authored by Pavel Vainerman's avatar Pavel Vainerman Committed by Pavel Vainerman

[unet-zero-copy]: long -> int64_t

parent ead8b934
...@@ -173,13 +173,13 @@ namespace uniset ...@@ -173,13 +173,13 @@ namespace uniset
return header.acount - 1; return header.acount - 1;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
size_t UDPMessage::addAData( long id, long val) noexcept size_t UDPMessage::addAData( int64_t id, int64_t val) noexcept
{ {
UDPAData d(id, val); UDPAData d(id, val);
return addAData(d); return addAData(d);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
bool UDPMessage::setAData( size_t index, long val ) noexcept bool UDPMessage::setAData( size_t index, int64_t val ) noexcept
{ {
if( index < MaxACount ) if( index < MaxACount )
{ {
......
...@@ -53,8 +53,8 @@ namespace uniset ...@@ -53,8 +53,8 @@ namespace uniset
uint32_t magic; uint32_t magic;
uint8_t _be_order; // 1 - BE byte order, 0 - LE byte order uint8_t _be_order; // 1 - BE byte order, 0 - LE byte order
size_t num; size_t num;
long nodeID; int64_t nodeID;
long procID; int64_t procID;
size_t dcount; /*!< количество булевых величин */ size_t dcount; /*!< количество булевых величин */
size_t acount; /*!< количество аналоговых величин */ size_t acount; /*!< количество аналоговых величин */
} __attribute__((packed)); } __attribute__((packed));
...@@ -67,10 +67,10 @@ namespace uniset ...@@ -67,10 +67,10 @@ namespace uniset
struct UDPAData struct UDPAData
{ {
UDPAData() noexcept: id(uniset::DefaultObjectId), val(0) {} UDPAData() noexcept: id(uniset::DefaultObjectId), val(0) {}
UDPAData(long id, long val) noexcept: id(id), val(val) {} UDPAData(int64_t id, int64_t val) noexcept: id(id), val(val) {}
long id; int64_t id;
long val; int64_t val;
} __attribute__((packed)); } __attribute__((packed));
...@@ -91,7 +91,7 @@ namespace uniset ...@@ -91,7 +91,7 @@ namespace uniset
bool isOk() noexcept; bool isOk() noexcept;
// \warning в случае переполнения возвращается MaxDCount // \warning в случае переполнения возвращается MaxDCount
size_t addDData( long id, bool val ) noexcept; size_t addDData( int64_t id, bool val ) noexcept;
//!\return true - successful //!\return true - successful
bool setDData( size_t index, bool val ) noexcept; bool setDData( size_t index, bool val ) noexcept;
...@@ -105,10 +105,10 @@ namespace uniset ...@@ -105,10 +105,10 @@ namespace uniset
// функции addAData возвращают индекс, по которому потом можно напрямую писать при помощи setAData(index) // функции addAData возвращают индекс, по которому потом можно напрямую писать при помощи setAData(index)
// \warning в случае переполнения возвращается MaxACount // \warning в случае переполнения возвращается MaxACount
size_t addAData( const UDPAData& dat ) noexcept; size_t addAData( const UDPAData& dat ) noexcept;
size_t addAData( long id, long val ) noexcept; size_t addAData( int64_t id, int64_t val ) noexcept;
//!\return true - successful //!\return true - successful
bool setAData( size_t index, long val ) noexcept; bool setAData( size_t index, int64_t val ) noexcept;
long getDataID( ) const noexcept; /*!< получение "уникального" идентификатора данных этого пакета */ long getDataID( ) const noexcept; /*!< получение "уникального" идентификатора данных этого пакета */
...@@ -140,7 +140,7 @@ namespace uniset ...@@ -140,7 +140,7 @@ namespace uniset
UDPHeader header; UDPHeader header;
UDPAData a_dat[MaxACount]; /*!< аналоговые величины */ UDPAData a_dat[MaxACount]; /*!< аналоговые величины */
long d_id[MaxDCount]; /*!< список дискретных ID */ int64_t d_id[MaxDCount]; /*!< список дискретных ID */
uint8_t d_dat[MaxDDataCount]; /*!< битовые значения */ uint8_t d_dat[MaxDDataCount]; /*!< битовые значения */
} __attribute__((packed)); } __attribute__((packed));
......
...@@ -207,13 +207,6 @@ bool UNetReceiver::createConnection( bool throwEx ) ...@@ -207,13 +207,6 @@ bool UNetReceiver::createConnection( bool throwEx )
if( throwEx ) if( throwEx )
throw SystemError(s.str()); throw SystemError(s.str());
} }
catch( const std::exception& ex )
{
unetcrit << ex.what() << std::endl;
if( throwEx )
throw ex;
}
return false; return false;
} }
......
...@@ -472,3 +472,27 @@ TEST_CASE("[UNetUDP]: check undefined value", "[unetudp][udp][sender]") ...@@ -472,3 +472,27 @@ TEST_CASE("[UNetUDP]: check undefined value", "[unetudp][udp][sender]")
REQUIRE( pack.a_dat[0].val == 110 ); REQUIRE( pack.a_dat[0].val == 110 );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
TEST_CASE("[UNetUDP]: perf test", "[unetudp][zero][perf]")
{
UniSetUDP::UDPMessage pack;
REQUIRE(pack.isOk());
pack.header.nodeID = 100;
pack.header.procID = 100;
pack.header.num = 1;
for( size_t i = 0; i < uniset::UniSetUDP::MaxACount; i++ ) {
pack.addAData(i, i);
pack.addDData(i, true);
}
UniSetUDP::UDPMessage pack2;
PassiveTimer pt;
for( int i = 0; i < 100000; i++ ) {
memcpy(&pack2, &pack, sizeof(UniSetUDP::UDPMessage));
pack2.ntoh();
}
cerr << "perf: " << pt.getCurrent() << " msec" << endl;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment