newmen/versatile-diamond

View on GitHub
engine/cpp/savers/base_saver.h

Summary

Maintainability
Test Coverage
#ifndef BASE_SAVER_H
#define BASE_SAVER_H

#include "../phases/saving_reactor.h"
#include "../tools/config.h"

namespace vd
{

class BaseSaver
{
    const Config *_config;

public:
    virtual ~BaseSaver() {}
    virtual void save(const SavingReactor *reactor) = 0;

    virtual bool needToInit() const { return true; } // by default

protected:
    BaseSaver(const Config *config) : _config(config) {}

    const Config *config() const { return _config; }

private:
    BaseSaver(const BaseSaver &) = delete;
    BaseSaver(BaseSaver &&) = delete;
    BaseSaver &operator = (const BaseSaver &) = delete;
    BaseSaver &operator = (BaseSaver &&) = delete;
};

}

#endif // BASE_SAVER_H