#pragma once #include #include struct OsmElement; namespace generator { // Implementing this interface allows an object to create intermediate data from OsmElement. class TranslatorInterface { public: virtual ~TranslatorInterface() = default; virtual void Preprocess(OsmElement &) {} virtual void Emit(OsmElement & element) = 0; virtual bool Finish() = 0; virtual void GetNames(std::vector & names) const = 0; }; } // namespace generator