#pragma once #include "layereddataz.h" class NEMOBIOData: public LayeredDataZ { enum Type { TYPE_UNKNOWN, TYPE_DT, TYPE_NRT, }; Type type = TYPE_UNKNOWN; public: static constexpr const char* name = "NEMOBIO"; static constexpr const char* disabledactions = "genintfile uv"; NEMOBIOData() = default; MString DataTitle() const { switch(type) { case(TYPE_DT): return "NEMO BIO Delayed time (DT)"; case(TYPE_NRT): return "NEMO BIO Near-real time (NRT)"; default: return "No title"; } } // TODO: RetVal MString Open(const CLArgs& args) { MString dataset = args.contains("dataset") ? args.at("dataset") : "DT"; GPL.UsePrefix("NEMOBIO"); if(dataset == "DT") type = TYPE_DT; else if(dataset == "NRT") type = TYPE_NRT; else return "Unknown dataset: " + dataset; SetTitle(DataTitle()); return LayeredDataZ::Open(dataset); } };