Commit c966df0d authored by Pavel Vainerman's avatar Pavel Vainerman

Небольшие оптимизации: push_[back,front] --> emplace_[back,front]

parent 44303a48
......@@ -254,7 +254,7 @@ int main( int argc, char** argv )
dval.d.v = ModbusRTU::str2mbData(arg);
}
data.push_back(dval);
data.emplace_back(dval);
val = dval.d.v;
}
......
......@@ -115,7 +115,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, (int)Debug::value(d), filter) );
vcmd.emplace_back(cmd, (int)Debug::value(d), filter);
}
break;
......@@ -129,7 +129,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, (int)Debug::value(d), filter) );
vcmd.emplace_back(cmd, (int)Debug::value(d), filter );
}
break;
......@@ -143,7 +143,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, (int)Debug::value(d), filter) );
vcmd.emplace_back(cmd, (int)Debug::value(d), filter );
}
break;
......@@ -156,7 +156,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(LogServerTypes::cmdList, 0, filter) );
vcmd.emplace_back(LogServerTypes::cmdList, 0, filter);
}
break;
......@@ -169,7 +169,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, 0, filter) );
vcmd.emplace_back(cmd, 0, filter);
}
break;
......@@ -182,7 +182,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, 0, filter) );
vcmd.emplace_back(cmd, 0, filter);
}
break;
......@@ -195,7 +195,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, 0, filter) );
vcmd.emplace_back(cmd, 0, filter);
}
break;
......@@ -209,7 +209,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, 0, filter) );
vcmd.emplace_back(cmd, 0, filter);
}
break;
......@@ -222,7 +222,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, 0, filter) );
vcmd.emplace_back(cmd, 0, filter);
}
break;
......@@ -248,7 +248,7 @@ int main( int argc, char** argv )
if( arg2 )
filter = string(arg2);
vcmd.push_back( LogReader::Command(cmd, 0, filter) );
vcmd.emplace_back(cmd, 0, filter);
}
break;
......
......@@ -1146,7 +1146,7 @@ std::string <xsl:value-of select="$CLASSNAME"/>_SK::dumpIO()
s1 &lt;&lt; " " &lt;&lt; setw(30) &lt;&lt; std::right &lt;&lt; "<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>"
&lt;&lt; " ( " &lt;&lt; setw(30) &lt;&lt; std::left &lt;&lt; ORepHelpers::getShortName( uniset_conf()->oind->getMapName(<xsl:value-of select="@name"/>)) &lt;&lt; " )"
&lt;&lt; std::right &lt;&lt; " = " &lt;&lt; setw(6) &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>;
v_in.push_back(s1.str());
v_in.emplace_back(s1.str());
</xsl:if>
</xsl:for-each>
......@@ -1158,7 +1158,7 @@ std::string <xsl:value-of select="$CLASSNAME"/>_SK::dumpIO()
s1 &lt;&lt; " " &lt;&lt; setw(30) &lt;&lt; std::right &lt;&lt; "<xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>"
&lt;&lt; " ( " &lt;&lt; setw(30) &lt;&lt; std::left &lt;&lt; ORepHelpers::getShortName( uniset_conf()->oind->getMapName(<xsl:value-of select="@name"/>)) &lt;&lt; " )"
&lt;&lt; std::right &lt;&lt; " = " &lt;&lt; setw(6) &lt;&lt; <xsl:call-template name="setprefix"/><xsl:value-of select="@name"/>;
v_out.push_back(s1.str());
v_out.emplace_back(s1.str());
</xsl:if>
</xsl:for-each>
......@@ -1494,7 +1494,7 @@ std::string <xsl:value-of select="$CLASSNAME"/>_SK::dumpIO()
<xsl:if test="normalize-space(@name)=$OID">
s1.str("");
s1 &lt;&lt; " " &lt;&lt; strval(<xsl:value-of select="../../@name"/>);
v.push_back(s1.str());
v.emplace_back(s1.str());
</xsl:if>
</xsl:if>
</xsl:for-each>
......
......@@ -198,9 +198,9 @@ void MySQLInterface::makeResult(DBResult& dbres, MYSQL_RES* myres, bool finalize
DBResult::COL c;
for( unsigned int i = 0; i < nfields; i++ )
c.push_back( (mysql_row[i] != 0 ? string(mysql_row[i]) : "") );
c.emplace_back( (mysql_row[i] != 0 ? string(mysql_row[i]) : "") );
dbres.row().push_back(c);
dbres.row().emplace_back(c);
}
if( finalize )
......
......@@ -271,7 +271,7 @@ void DBServer_PostgreSQL::sensorInfo( const UniSetTypes::SensorMessage* si )
std::to_string(si->node),
};
ibuf.push_back(std::move(rec));
ibuf.emplace_back(std::move(rec));
ibufSize++;
if( ibufSize >= ibufMaxSize )
......
......@@ -253,12 +253,12 @@ void SQLiteInterface::makeResult(DBResult& dbres, sqlite3_stmt* s, bool finalize
char* p = (char*)sqlite3_column_text(s, i);
if( p )
c.push_back(p);
c.emplace_back(p);
else
c.push_back("");
c.emplace_back("");
}
dbres.row().push_back(c);
dbres.row().emplace_back(c);
}
while( sqlite3_step(s) == SQLITE_ROW );
......
......@@ -795,8 +795,7 @@ bool IOControl::initIOItem( UniXML::iterator& it )
if( prior > 0 )
{
IOPriority p(prior, maxItem);
pmap.push_back(p);
pmap.emplace_back(prior, maxItem);
iolog3 << myname << "(readItem): add to priority list: " <<
it.getProp("name")
<< " priority=" << prior << endl;
......
......@@ -102,7 +102,7 @@ void Element::addInput(size_t num, bool state)
}
}
ins.push_front(InputInfo(num, state));
ins.emplace_front(num, state);
}
// -------------------------------------------------------------------------
void Element::delInput(size_t num )
......
......@@ -125,7 +125,7 @@ void LProcessor::build( const string& lfile )
continue;
}
extInputs.push_front(ei);
extInputs.emplace_front( std::move(ei) );
}
for( auto it = sch->outBegin(); it != sch->outEnd(); ++it )
......@@ -149,7 +149,7 @@ void LProcessor::build( const string& lfile )
continue;
}
extOuts.push_front(ei);
extOuts.emplace_front(std::move(ei));
}
}
// -------------------------------------------------------------------------
......
......@@ -61,7 +61,7 @@ void Schema::link( Element::ElementID rootID, Element::ElementID childID, int nu
e1->addChildOut(e2, numIn);
// сохраняем в список соединений
inLinks.push_front(INLink(e1, e2, numIn));
inLinks.emplace_front(e1, e2, numIn);
}
// -------------------------------------------------------------------------
void Schema::unlink( Element::ElementID rootID, Element::ElementID childID )
......@@ -122,7 +122,7 @@ void Schema::extlink( const string& name, Element::ElementID childID, int numIn
// уже должен быть
// заносим в список
extLinks.push_front( EXTLink(name, el, numIn) );
extLinks.emplace_front(name, el, numIn);
}
// -------------------------------------------------------------------------
std::shared_ptr<Element> Schema::manage( std::shared_ptr<Element> el )
......
......@@ -141,7 +141,7 @@ void SchemaXML::read( const string& xmlfile )
}
dinfo << "SchemaXML: set Out: from=" << fID << " to=" << tID << endl;
outList.push_front( EXTOut(tID, el) );
outList.emplace_front(tID, el);
}
}
}
......
......@@ -30,7 +30,7 @@ TDelay::TDelay(Element::ElementID id, timeout_t delayMS, size_t inCount):
{
// создаём заданное количество входов
for( unsigned int i = 1; i <= inCount; i++ )
ins.push_front(InputInfo(i, false)); // addInput(i,st);
ins.emplace_front(i, false); // addInput(i,st);
}
}
......
......@@ -26,7 +26,7 @@ TNOT::TNOT( ElementID id, bool out_default ):
Element(id),
myout(out_default)
{
ins.push_front(InputInfo(1, !out_default));
ins.emplace_front(1, !out_default);
}
// -------------------------------------------------------------------------
TNOT::~TNOT()
......
......@@ -31,7 +31,7 @@ TOR::TOR(ElementID id, size_t num, bool st):
// создаём заданное количество входов
for( unsigned int i = 1; i <= num; i++ )
{
ins.push_front(InputInfo(i, st)); // addInput(i,st);
ins.emplace_front(i, st); // addInput(i,st);
if( st == true )
myout = true;
......
......@@ -2113,7 +2113,7 @@ MBExchange::RSProperty* MBExchange::addProp( PList& plist, RSProperty&& p )
return &it;
}
plist.push_back( std::move(p) );
plist.emplace_back( std::move(p) );
auto it = plist.end();
--it;
return &(*it);
......@@ -2581,7 +2581,7 @@ bool MBExchange::initItem( UniXML::iterator& it )
}
}
initRegList.push_back( std::move(ii) );
initRegList.emplace_back( std::move(ii) );
ri->mb_initOK = false;
ri->sm_initOK = false;
}
......
......@@ -137,8 +137,8 @@ MBTCPMultiMaster::MBTCPMultiMaster( UniSetTypes::ObjectId objId, UniSetTypes::Ob
auto l = loga->create(sinf.myname);
sinf.mbtcp->setLog(l);
mblist.push_back(sinf);
mbinfo << myname << "(init): add slave channel " << sinf.myname << endl;
mblist.emplace_back(std::move(sinf));
}
if( ic )
......
......@@ -488,7 +488,7 @@ bool SharedMemory::readItem( const std::shared_ptr<UniXML>& xml, UniXML::iterato
// без проверки на дублирование т.к.
// id - гарантирует уникальность в нашем configure.xml
hblist.push_back(hi);
hblist.emplace_back( std::move(hi) );
return true;
}
......@@ -687,7 +687,7 @@ void SharedMemory::buildHistoryList( xmlNode* cnode )
<< endl;
// WARNING: no check duplicates...
hist.push_back(hi);
hist.emplace_back( std::move(hi) );
}
sminfo << myname << "(buildHistoryList): history logs count=" << hist.size() << endl;
......@@ -702,8 +702,7 @@ void SharedMemory::checkHistoryFilter( UniXML::iterator& xit )
if( !xit.getProp("id").empty() )
{
HistoryItem ai(xit.getIntProp("id"), it.size, xit.getIntProp("default") );
it.hlst.push_back( std::move(ai) );
it.hlst.emplace_back(xit.getIntProp("id"), it.size, xit.getIntProp("default"));
continue;
}
......@@ -715,8 +714,7 @@ void SharedMemory::checkHistoryFilter( UniXML::iterator& xit )
continue;
}
HistoryItem ai(id, it.size, xit.getIntProp("default") );
it.hlst.push_back( std::move(ai) );
it.hlst.emplace_back(id, it.size, xit.getIntProp("default"));
}
}
// -----------------------------------------------------------------------------
......
......@@ -372,7 +372,7 @@ UNetExchange::UNetExchange(UniSetTypes::ObjectId objId, UniSetTypes::ObjectId sh
ri.setRespondID(resp_comm_id, resp_invert);
ri.setLostPacketsID(lp_comm_id);
ri.setChannelNumID(numchannel_id);
recvlist.push_back(ri);
recvlist.emplace_back( std::move(ri) );
}
// -------------------------------
......
......@@ -90,7 +90,7 @@ void DigitalFilter::init( int val )
{
buf.clear();
for( unsigned int i = 0; i < maxsize; i++ )
for( size_t i = 0; i < maxsize; i++ )
buf.push_back(val);
w.assign(maxsize, 1.0 / maxsize);
......
......@@ -175,7 +175,7 @@ void ModbusTCPServer::getSessions( Sessions& lst )
for( const auto& i : slist )
{
SessionInfo inf( i->getClientAddress(), i->getAskCount() );
lst.push_back(inf);
lst.emplace_back( std::move(inf) );
}
}
// -------------------------------------------------------------------------
......
......@@ -356,8 +356,7 @@ std::list<LogAgregator::iLog> LogAgregator::makeLogNameList( const std::string&
else
{
const std::string nm(p2 + l.second->getLogName());
LogAgregator::iLog il(l.second, std::move(nm) );
lst.push_back( std::move(il) );
lst.emplace_back(l.second, std::move(nm) );
}
}
......
......@@ -405,10 +405,7 @@ void LogSession::cmdProcessing( const string& cmdLogName, const LogServerTypes::
else
{
if( cmdLogName.empty() || cmdLogName == "ALL" || log->getLogFile() == cmdLogName )
{
LogAgregator::iLog llog(log, log->getLogName());
loglist.emplace_back(llog);
}
loglist.emplace_back(log, log->getLogName());
}
if( msg.cmd == LogServerTypes::cmdFilterMode )
......
......@@ -388,10 +388,7 @@ bool ObjectRepository::list(const string& section, ListObjectName* ls, unsigned
case ObjectRef:
{
if(bl[i].binding_type == CosNaming::nobject)
{
string objn = omniURI::nameToString(bl[i].binding_name);
ls->push_front(objn);
}
ls->emplace_front(omniURI::nameToString(bl[i].binding_name));
break;
}
......@@ -399,10 +396,7 @@ bool ObjectRepository::list(const string& section, ListObjectName* ls, unsigned
case Section:
{
if( bl[i].binding_type == CosNaming::ncontext)
{
string objn = omniURI::nameToString(bl[i].binding_name);
ls->push_front(objn);
}
ls->emplace_front(omniURI::nameToString(bl[i].binding_name));
break;
}
......
......@@ -241,7 +241,7 @@ std::vector<std::string> UniSetTypes::explode_str( const string& str, char sep )
string s(str.substr(prev, sz - prev));
if( !s.empty() )
v.emplace_back(s);
v.emplace_back( std::move(s) );
break;
}
......@@ -256,7 +256,7 @@ std::vector<std::string> UniSetTypes::explode_str( const string& str, char sep )
if( !s.empty() )
{
v.emplace_back(s);
v.emplace_back(std::move(s));
prev = pos + 1;
}
}
......@@ -344,7 +344,7 @@ std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( const string& str,
continue;
}
res.push_back(item);
res.emplace_back( std::move(item) );
}
return std::move(res);
......@@ -407,7 +407,7 @@ std::list<UniSetTypes::ConsumerInfo> UniSetTypes::getObjectsList( const string&
continue;
}
res.push_back(item);
res.emplace_back( std::move(item) );
}
return std::move(res);
......
......@@ -419,7 +419,7 @@ void NCRestorer_XML::read_thresholds( const std::shared_ptr<UniXML>& xml, xmlNod
}
// порог добавляем в любом случае, даже если список заказчиков пуст...
tlst.push_back( std::move(ti) );
tlst.emplace_back( std::move(ti) );
rtslot(xml, tit, it);
}
......@@ -468,8 +468,7 @@ bool NCRestorer_XML::getConsumerList( const std::shared_ptr<UniXML>& xml, xmlNod
if( !getConsumerInfo(it, ci.id, ci.node) )
continue;
// IONotifyController::ConsumerInfoExt cinf(ci);
lst.clst.emplace_back(ci);
lst.clst.emplace_back( std::move(ci) );
cslot(xml, it, node);
}
......
......@@ -313,7 +313,7 @@ namespace UniSetTypes
{
const string a(omniIt.getProp("arg"));
uinfo << "(Configuration): add omniORB option '" << p << "' " << a << endl;
omniParams.push_back( std::make_pair(p, a) );
omniParams.emplace_back( std::move(std::make_pair(p, a)) );
}
}
}
......@@ -835,7 +835,7 @@ namespace UniSetTypes
initNode(ninf, it);
uinfo << "Configuration(createNodesList): add to list of nodes: node=" << nodename << " id=" << ninf.id << endl;
lnodes.push_back(ninf);
lnodes.emplace_back( std::move(ninf) );
}
uinfo << "Configuration(createNodesList): size of node list " << lnodes.size() << endl;
......
......@@ -85,33 +85,33 @@
#define VMON_MAKE_PAIR(vlist, T) \
{\
for( const auto& e: m_##T ) \
vlist.push_back( std::make_pair(e.second, std::to_string(*(e.first))) );\
vlist.emplace_back( e.second, std::to_string(*(e.first)) );\
}
// --------------------------------------------------------------------------
#define VMON_MAKE_PAIR_S(vlist, T) \
{\
for( const auto& e: m_##T ) \
vlist.push_back( std::make_pair(e.second,*e.first) );\
vlist.emplace_back( e.second,*e.first );\
}
// --------------------------------------------------------------------------
#define VMON_MAKE_PAIR2(vlist, T) \
{\
std::ostringstream s;\
for( const auto& e: m_##T ) \
vlist.push_back( std::make_pair(e.second, std::to_string(*(e.first))) );\
vlist.emplace_back( e.second, std::to_string(*(e.first)) );\
\
for( const auto& e: m_unsigned_##T ) \
vlist.push_back( std::make_pair(e.second, std::to_string(*(e.first))) );\
vlist.emplace_back( e.second, std::to_string(*(e.first)) );\
}
// --------------------------------------------------------------------------
#define VMON_MAKE_PAIR_CHAR(vlist) \
{\
std::ostringstream s;\
for( const auto& e: m_char ) \
vlist.push_back(std::make_pair(e.second,std::to_string((int)(*(e.first)))) );\
vlist.emplace_back( e.second,std::to_string((int)(*(e.first))) );\
\
for( const auto& e: m_unsigned_char ) \
vlist.push_back(std::make_pair(e.second,std::to_string((int)(*(e.first)))) );\
vlist.emplace_back( e.second,std::to_string((int)(*(e.first))) );\
}
// --------------------------------------------------------------------------
VMON_IMPL_ADD2(int)
......
......@@ -22,7 +22,7 @@ int main( int argc, char* argv[] )
int t1, t2;
for ( int i = 0; i < N; i++ )
values.push_back( rand() * rand() );
values.emplace_back( rand() * rand() );
#if 0
std::cout << "insert:" << std::endl;
......
......@@ -137,12 +137,12 @@ TEST_CASE("uniset_rwmutex_{wr|r} thread lock", "[mutex][threadlock][basic]" )
std::vector< std::future<bool> > vw(3);
for( int w = 0; w < 3; w++ )
vw.push_back( std::async(std::launch::async, writer_thread, w) );
vw.emplace_back( std::async(std::launch::async, writer_thread, w) );
std::vector< std::future<bool> > vr(3);
for( int r = 0; r < 5; r++ )
vr.push_back( std::async(std::launch::async, reader_thread, r) );
vr.emplace_back( std::async(std::launch::async, reader_thread, r) );
msleep(10);
......
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