Program Listing for File Flushable.hpp

Return to documentation for file (engine/include/Cacao/Flushable.hpp)

#pragma once

#include "DllHelper.hpp"

namespace Cacao {
    template<typename T>
    class CACAO_API Flushable {
      public:
        explicit Flushable(T& obj)
          : originalObject(obj), mod(obj) {}

        T* operator->() {
            return &mod;
        }

        void operator=(T newDat) {
            mod = newDat;
        }

        void Flush() {
            originalObject = mod;
        }

      private:
        T& originalObject;
        T mod;//Local copy to work on
    };
}