Index: ext/libicpf/src/libicpf/cfg.cpp =================================================================== diff -u -N -r42fda86dd6448c89e6db68e0df8741e9ad5269f1 -r9934e5dc9613bf3246f7d4955d4dd7c07f0dd555 --- ext/libicpf/src/libicpf/cfg.cpp (.../cfg.cpp) (revision 42fda86dd6448c89e6db68e0df8741e9ad5269f1) +++ ext/libicpf/src/libicpf/cfg.cpp (.../cfg.cpp) (revision 9934e5dc9613bf3246f7d4955d4dd7c07f0dd555) @@ -197,6 +197,29 @@ m_lock.unlock(); } +/** Reads the configuration data from the provided buffer. + * + * \param[in] pszData - pointer to the buffer with data + * \param[in] stSize - size of the data in buffer + */ +void config::read_from_buffer(const tchar_t* pszData, size_t stSize) +{ + m_lock.lock(); + try + { + m_pCfgBase->read_from_buffer(pszData, stSize); + + // and transform it to eatable form using registered properties + load_registered(); + } + catch(...) + { + m_lock.unlock(); + throw; + } + m_lock.unlock(); +} + /** Writes all the registered properties into the given file using * the underlying config base to do this. *