本文整理汇总了C++中boost::scoped_ptr::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ scoped_ptr::Add方法的具体用法?C++ scoped_ptr::Add怎么用?C++ scoped_ptr::Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost::scoped_ptr
的用法示例。
在下文中一共展示了scoped_ptr::Add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HeartbeatArrival
void HeartbeatArrival(uint16_t sourceId, const std::uint8_t *data, std::uint8_t len)
{
if (len<5)
return;
CANExtended::DeviceState state = static_cast<CANExtended::DeviceState>(data[0]);
if (state != CANExtended::Operational)
return;
auto unit = unitManager->FindUnit(sourceId&0x7f);
bool updated = (unit!=nullptr) && (unit->UpdateStatus()==StorageUnit::Updated);
if (unit == nullptr || updated)
{
StorageBasic basic(CanEx);
basic.DeviceId = sourceId;
basic.SensorNum = data[2];
basic.Version = (data[3]<<8)|data[4];
switch (data[1])
{
case UNIT_TYPE_INDEPENDENT:
unit.reset(new IndependentUnit(basic));
break;
case UNIT_TYPE_UNITY:
unit.reset(new UnityUnit(basic));
break;
case UNIT_TYPE_UNITY_RFID:
unit.reset(new RfidUnit(basic));
break;
default:
CanEx->Sync(sourceId, DeviceSync::SyncLive, CANExtended::Trigger);
return;
}
unit->ReadCommandResponse.bind(ethEngine.get(), &NetworkEngine::DeviceReadResponse);
unit->WriteCommandResponse.bind(ethEngine.get(), &NetworkEngine::DeviceWriteResponse);
CanEx->RegisterDevice(unit);
if (updated)
{
unitManager->Recover(sourceId&0x7f, unit);
#ifdef DEBUG_PRINT
cout<<"#Recovered Device 0x"<<std::hex<<sourceId<<std::dec<<endl;
#endif
}
else
{
unitManager->Add(sourceId&0x7f, unit);
#ifdef DEBUG_PRINT
cout<<"#Added Device 0x"<<std::hex<<sourceId<<std::dec<<endl;
#endif
}
}
//CanEx->Sync(sourceId, DeviceSync::SyncLive, CANExtended::AutoSync); //Confirm & Start AutoSync
CanEx->Sync(sourceId, DeviceSync::SyncLive, CANExtended::Trigger);
if (updated)
unitManager->SyncUpdate();
}