Commit d53b3c49 authored by Pavel Vainerman's avatar Pavel Vainerman

(unet): cleanup code

parent 67f75773
...@@ -314,7 +314,7 @@ void UNetReceiver::statisticsEvent(ev::periodic& tm, int revents) noexcept ...@@ -314,7 +314,7 @@ void UNetReceiver::statisticsEvent(ev::periodic& tm, int revents) noexcept
return; return;
} }
auto t_end = chrono::high_resolution_clock::now(); t_end = chrono::high_resolution_clock::now();
float sec = chrono::duration_cast<chrono::duration<float>>(t_end - t_stats).count(); float sec = chrono::duration_cast<chrono::duration<float>>(t_end - t_stats).count();
t_stats = t_end; t_stats = t_end;
stats.recvPerSec = recvCount / sec; stats.recvPerSec = recvCount / sec;
...@@ -796,9 +796,9 @@ void UNetReceiver::initIterators() noexcept ...@@ -796,9 +796,9 @@ void UNetReceiver::initIterators() noexcept
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack ) noexcept UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* upack ) noexcept
{ {
auto dID = pack->getDataID(); auto dID = upack->getDataID();
auto dit = d_icache_map.find(dID); auto dit = d_icache_map.find(dID);
if( dit == d_icache_map.end() ) if( dit == d_icache_map.end() )
...@@ -809,22 +809,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack ) ...@@ -809,22 +809,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack )
CacheInfo* d_info = &dit->second; CacheInfo* d_info = &dit->second;
if( pack->header.dcount == d_info->items.size() ) if(upack->header.dcount == d_info->items.size() )
return &dit->second; return &dit->second;
unetinfo << myname << ": init dcache[" << pack->header.dcount << "] for dataID=" << dID << endl; unetinfo << myname << ": init dcache[" << upack->header.dcount << "] for dataID=" << dID << endl;
d_info->items.resize(pack->header.dcount); d_info->items.resize(upack->header.dcount);
d_info->crc = 0; d_info->crc = 0;
cacheMissed++; cacheMissed++;
for( size_t i = 0; i < pack->header.dcount; i++ ) for(size_t i = 0; i < upack->header.dcount; i++ )
{ {
CacheItem& d = d_info->items[i]; CacheItem& d = d_info->items[i];
if( d.id != pack->d_id[i] ) if(d.id != upack->d_id[i] )
{ {
d.id = pack->d_id[i]; d.id = upack->d_id[i];
shm->initIterator(d.ioit); shm->initIterator(d.ioit);
} }
} }
...@@ -832,9 +832,9 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack ) ...@@ -832,9 +832,9 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack )
return d_info; return d_info;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
UNetReceiver::CacheInfo* UNetReceiver::getACache( UniSetUDP::UDPMessage* pack ) noexcept UNetReceiver::CacheInfo* UNetReceiver::getACache( UniSetUDP::UDPMessage* upack ) noexcept
{ {
auto dID = pack->getDataID(); auto dID = upack->getDataID();
auto ait = a_icache_map.find(dID); auto ait = a_icache_map.find(dID);
if( ait == a_icache_map.end() ) if( ait == a_icache_map.end() )
...@@ -845,22 +845,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getACache( UniSetUDP::UDPMessage* pack ) ...@@ -845,22 +845,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getACache( UniSetUDP::UDPMessage* pack )
CacheInfo* a_info = &ait->second; CacheInfo* a_info = &ait->second;
if( pack->header.acount == a_info->items.size() ) if( upack->header.acount == a_info->items.size() )
return a_info; return a_info;
unetinfo << myname << ": init acache[" << pack->header.acount << "] for dataID=" << dID << endl; unetinfo << myname << ": init acache[" << upack->header.acount << "] for dataID=" << dID << endl;
a_info->items.resize(pack->header.acount); a_info->items.resize(upack->header.acount);
a_info->crc = 0; a_info->crc = 0;
cacheMissed++; cacheMissed++;
for( size_t i = 0; i < pack->header.acount; i++ ) for( size_t i = 0; i < upack->header.acount; i++ )
{ {
CacheItem& d = a_info->items[i]; CacheItem& d = a_info->items[i];
if( d.id != pack->a_dat[i].id ) if( d.id != upack->a_dat[i].id )
{ {
d.id = pack->a_dat[i].id; d.id = upack->a_dat[i].id;
shm->initIterator(d.ioit); shm->initIterator(d.ioit);
} }
} }
...@@ -873,7 +873,7 @@ void UNetReceiver::connectEvent( UNetReceiver::EventSlot sl ) noexcept ...@@ -873,7 +873,7 @@ void UNetReceiver::connectEvent( UNetReceiver::EventSlot sl ) noexcept
slEvent = sl; slEvent = sl;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
const std::string UNetReceiver::getShortInfo() const noexcept std::string UNetReceiver::getShortInfo() const noexcept
{ {
// warning: будет вызываться из другого потока // warning: будет вызываться из другого потока
// (считаем что чтение безопасно) // (считаем что чтение безопасно)
......
...@@ -99,7 +99,7 @@ namespace uniset ...@@ -99,7 +99,7 @@ namespace uniset
* выкинуто исключение при неудачной попытке создания соединения. * выкинуто исключение при неудачной попытке создания соединения.
*/ */
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
class UNetReceiver: class UNetReceiver final:
protected EvWatcher, protected EvWatcher,
public std::enable_shared_from_this<UNetReceiver> public std::enable_shared_from_this<UNetReceiver>
{ {
...@@ -112,7 +112,7 @@ namespace uniset ...@@ -112,7 +112,7 @@ namespace uniset
void start(); void start();
void stop(); void stop();
inline const std::string getName() const inline std::string getName() const noexcept
{ {
return myname; return myname;
} }
...@@ -160,12 +160,12 @@ namespace uniset ...@@ -160,12 +160,12 @@ namespace uniset
void connectEvent( EventSlot sl ) noexcept; void connectEvent( EventSlot sl ) noexcept;
// -------------------------------------------------------------------- // --------------------------------------------------------------------
inline std::shared_ptr<DebugStream> getLog() inline std::shared_ptr<DebugStream> getLog() noexcept
{ {
return unetlog; return unetlog;
} }
virtual const std::string getShortInfo() const noexcept; std::string getShortInfo() const noexcept;
protected: protected:
...@@ -180,7 +180,6 @@ namespace uniset ...@@ -180,7 +180,6 @@ namespace uniset
}; };
ReceiveRetCode receive() noexcept; ReceiveRetCode receive() noexcept;
void step() noexcept;
void update() noexcept; void update() noexcept;
void callback( ev::io& watcher, int revents ) noexcept; void callback( ev::io& watcher, int revents ) noexcept;
void readEvent( ev::io& watcher ) noexcept; void readEvent( ev::io& watcher ) noexcept;
...@@ -202,7 +201,7 @@ namespace uniset ...@@ -202,7 +201,7 @@ namespace uniset
size_t rnext( size_t num ); size_t rnext( size_t num );
private: private:
UNetReceiver(); UNetReceiver() {}
timeout_t updatepause = { 100 }; /*!< периодичность обновления данных в SM, [мсек] */ timeout_t updatepause = { 100 }; /*!< периодичность обновления данных в SM, [мсек] */
...@@ -304,7 +303,7 @@ namespace uniset ...@@ -304,7 +303,7 @@ namespace uniset
size_t cacheMissed; // количество промахов size_t cacheMissed; // количество промахов
bool ignoreCRC = { false }; /*!< отключение проверки crc */ bool ignoreCRC = { false }; /*!< отключение проверки crc */
CacheInfo* getDCache( UniSetUDP::UDPMessage* pack ) noexcept; CacheInfo* getDCache( UniSetUDP::UDPMessage* upack ) noexcept;
CacheInfo* getACache( UniSetUDP::UDPMessage* pack ) noexcept; CacheInfo* getACache( UniSetUDP::UDPMessage* pack ) noexcept;
}; };
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
......
...@@ -168,7 +168,7 @@ namespace uniset ...@@ -168,7 +168,7 @@ namespace uniset
updateItem( it->second, value ); updateItem( it->second, value );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UNetSender::updateItem( UItem& it, long value ) void UNetSender::updateItem( const UItem& it, long value )
{ {
auto& pk = mypacks[it.pack_sendfactor]; auto& pk = mypacks[it.pack_sendfactor];
...@@ -181,7 +181,7 @@ namespace uniset ...@@ -181,7 +181,7 @@ namespace uniset
mypack.msg.setAData(it.pack_ind, value); mypack.msg.setAData(it.pack_ind, value);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UNetSender::setCheckConnectionPause( int msec ) void UNetSender::setCheckConnectionPause( int msec ) noexcept
{ {
if( msec > 0 ) if( msec > 0 )
ptCheckConnection.setTiming(msec); ptCheckConnection.setTiming(msec);
...@@ -448,7 +448,6 @@ namespace uniset ...@@ -448,7 +448,6 @@ namespace uniset
<< UniSetUDP::MaxDCount << endl << flush; << UniSetUDP::MaxDCount << endl << flush;
std::terminate(); std::terminate();
return false;
} }
} }
else if( p.iotype == UniversalIO::AI || p.iotype == UniversalIO::AO ) // -V560 else if( p.iotype == UniversalIO::AI || p.iotype == UniversalIO::AO ) // -V560
...@@ -512,7 +511,7 @@ namespace uniset ...@@ -512,7 +511,7 @@ namespace uniset
return os << " sid=" << p.id; return os << " sid=" << p.id;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void UNetSender::initIterators() void UNetSender::initIterators() noexcept
{ {
for( auto&& it : items ) for( auto&& it : items )
shm->initIterator(it.second.ioit); shm->initIterator(it.second.ioit);
...@@ -524,12 +523,12 @@ namespace uniset ...@@ -524,12 +523,12 @@ namespace uniset
shm->askSensor(it.second.id, cmd); shm->askSensor(it.second.id, cmd);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
size_t UNetSender::getDataPackCount() const size_t UNetSender::getDataPackCount() const noexcept
{ {
return mypacks.size(); return mypacks.size();
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
const std::string UNetSender::getShortInfo() const std::string UNetSender::getShortInfo() const noexcept
{ {
// warning: будет вызываться из другого потока // warning: будет вызываться из другого потока
// (считаем что чтение безопасно) // (считаем что чтение безопасно)
...@@ -545,12 +544,12 @@ namespace uniset ...@@ -545,12 +544,12 @@ namespace uniset
<< "\t packs([sendfactor]=num): " << "\t packs([sendfactor]=num): "
<< endl; << endl;
for( auto i = mypacks.begin(); i != mypacks.end(); ++i ) for( const auto& p : mypacks )
{ {
s << " \t[" << i->first << "]=" << i->second.size() << endl; s << " \t[" << p.first << "]=" << p.second.size() << endl;
size_t n = 0; size_t n = 0;
for( const auto& pack : i->second ) for( const auto& pack : p.second )
{ {
//uniset_rwmutex_rlock l(p->mut); //uniset_rwmutex_rlock l(p->mut);
s << " \t\t[" << (n++) << "]=" << sizeof(pack.msg) << " bytes" s << " \t\t[" << (n++) << "]=" << sizeof(pack.msg) << " bytes"
......
...@@ -60,7 +60,7 @@ namespace uniset ...@@ -60,7 +60,7 @@ namespace uniset
* выкинуто исключение при неудачной попытке создания соединения. * выкинуто исключение при неудачной попытке создания соединения.
* \warning setCheckConnectionPause(msec) должно быть кратно sendpause! * \warning setCheckConnectionPause(msec) должно быть кратно sendpause!
*/ */
class UNetSender class UNetSender final
{ {
public: public:
UNetSender( std::unique_ptr<UNetSendTransport>&& transport, const std::shared_ptr<SMInterface>& smi UNetSender( std::unique_ptr<UNetSendTransport>&& transport, const std::shared_ptr<SMInterface>& smi
...@@ -72,7 +72,7 @@ namespace uniset ...@@ -72,7 +72,7 @@ namespace uniset
, size_t maxDCount = UniSetUDP::MaxDCount , size_t maxDCount = UniSetUDP::MaxDCount
, size_t maxACount = UniSetUDP::MaxACount ); , size_t maxACount = UniSetUDP::MaxACount );
virtual ~UNetSender(); ~UNetSender();
typedef size_t sendfactor_t; typedef size_t sendfactor_t;
...@@ -99,7 +99,7 @@ namespace uniset ...@@ -99,7 +99,7 @@ namespace uniset
typedef std::unordered_map<uniset::ObjectId, UItem> UItemMap; typedef std::unordered_map<uniset::ObjectId, UItem> UItemMap;
size_t getDataPackCount() const; size_t getDataPackCount() const noexcept;
void start(); void start();
void stop(); void stop();
...@@ -126,41 +126,41 @@ namespace uniset ...@@ -126,41 +126,41 @@ namespace uniset
void updateSensor( uniset::ObjectId id, long value ); void updateSensor( uniset::ObjectId id, long value );
/*! Обновить значение по итератору */ /*! Обновить значение по итератору */
void updateItem( UItem& it, long value ); void updateItem( const UItem& it, long value );
inline void setSendPause( int msec ) inline void setSendPause( int msec ) noexcept
{ {
sendpause = msec; sendpause = msec;
} }
inline void setPackSendPause( int msec ) inline void setPackSendPause( int msec ) noexcept
{ {
packsendpause = msec; packsendpause = msec;
} }
inline void setPackSendPauseFactor( int factor ) inline void setPackSendPauseFactor( int factor ) noexcept
{ {
packsendpauseFactor = factor; packsendpauseFactor = factor;
} }
void setCheckConnectionPause( int msec ); void setCheckConnectionPause( int msec ) noexcept;
/*! заказать датчики */ /*! заказать датчики */
void askSensors( UniversalIO::UIOCommand cmd ); void askSensors( UniversalIO::UIOCommand cmd );
/*! инициализация итераторов */ /*! инициализация итераторов */
void initIterators(); void initIterators() noexcept;
inline std::shared_ptr<DebugStream> getLog() inline std::shared_ptr<DebugStream> getLog() noexcept
{ {
return unetlog; return unetlog;
} }
virtual const std::string getShortInfo() const; std::string getShortInfo() const noexcept;
inline size_t getADataSize() const inline size_t getADataSize() const noexcept
{ {
return maxAData; return maxAData;
} }
inline size_t getDDataSize() const inline size_t getDDataSize() const noexcept
{ {
return maxDData; return maxDData;
} }
......
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