#pragma once #include "BsScriptEnginePrerequisites.h" #include "BsBinaryDiff.h" namespace BansheeEngine { /** * @brief Diff handler that performs RTTI object diff for * managed objects. Managed objects require special diff * handling since their serialization works differently. */ class BS_SCR_BE_EXPORT ManagedDiff : public IDiff { protected: /** * @copydoc IDiff::generateDiff(const SPtr&, const SPtr&, ObjectMap&) */ SPtr generateDiff(const SPtr& orgSerzObj, const SPtr& newSerzObj, ObjectMap& objectMap) override; /** * @copydoc IDiff::applyDiff(const SPtr&, const SPtr&, DiffObjectMap&, Vector&) */ void applyDiff(const SPtr& object, const SPtr& serzDiff, DiffObjectMap& objectMap, Vector& diffCommands) override; }; }