diff options
Diffstat (limited to 'diff.h')
-rw-r--r-- | diff.h | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -0,0 +1,37 @@ +#pragma once + +#include <string> + +#include <boost/property_tree/ptree.hpp> + +class Diff +{ +public: + Diff(); + Diff(const std::string& old_version, const std::string& new_version); + void create(const std::string& old_version, const std::string& new_version); + + Diff(const boost::property_tree::ptree& ptree); + void create(const boost::property_tree::ptree& ptree); + + Diff(const std::string& xml); + void create(const std::string& xml); + + std::string apply(const std::string& old_version) const; + + bool empty() const; + + boost::property_tree::ptree get_structure() const; + std::string get_xml() const; + +private: + // diff replaces space from m_pos0 (inclusive) to m_pos1 (exclusive) with m_data + size_t m_pos0{}; + size_t m_pos1{}; + std::string m_data; +}; + +extern "C" { + const char* diff_create(const char* old_version, const char* new_version); + const char* diff_apply(const char* old_version, const char* diff); +} |