35 lines
1.3 KiB
C++
35 lines
1.3 KiB
C++
/*
|
|
* TransferSettingToIParameterProvider.cpp
|
|
*
|
|
* Created on: 31 àâã. 2021 ã.
|
|
* Author: sozonov
|
|
*/
|
|
#include "TransferSettingToIParameterProvider.hh"
|
|
#include "../systemic/CustomParameters.hpp"
|
|
|
|
#include <memory>
|
|
#include <cstring>
|
|
|
|
void systemic::TransferSettingToIParameterProvider::transfer_setting(){
|
|
|
|
provider.try_lock();
|
|
//Ñîçäà¸ì áóôåð â êîòîðûé â áóäóùåì óëîæèì íàñòðîéêó
|
|
string = provider->createParameterBuff( id, sett_data.get().second );
|
|
//Ïûòàåìñÿ çàáëîêèðîâàòü áóôåð, íà âðåìÿ âûïîëíåíèÿ ôóíêöèè
|
|
std::lock_guard<SharedData> guard(string);
|
|
|
|
std::memcpy( string.get().first, sett_data.get().first, sett_data.get().second );
|
|
|
|
//Ñîõðàíèì íàñòðîéêó
|
|
provider->flushParameterBuff(id);
|
|
provider.unlock();
|
|
|
|
}
|
|
|
|
|
|
systemic::TransferSettingToIParameterProvider::TransferSettingToIParameterProvider( ResourceKeeper<systemic::IParameterProvider> &_provider,
|
|
Id _id,
|
|
systemic::SharedData _sett_data,
|
|
Id _link_id ):
|
|
provider ( _provider ) , id( _id ), sett_data ( _sett_data ), link_id ( _link_id ){}
|