From 72d88e3c67a364f94bba636d520b3f54961031fa Mon Sep 17 00:00:00 2001 From: Michael Uleysky Date: Tue, 27 Jun 2023 12:42:04 +1000 Subject: [PATCH] Opening dataset is done in actions --- actions/actiongenintfile.h | 3 +++ actions/actioninfo.h | 4 +++- actions/actiontsc.h | 3 +++ actions/actionuv.h | 5 ++++- src/data.cpp | 2 -- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/actions/actiongenintfile.h b/actions/actiongenintfile.h index f76b9b2..5ccd9a1 100644 --- a/actions/actiongenintfile.h +++ b/actions/actiongenintfile.h @@ -11,6 +11,9 @@ ADD_ACTION(GenIntFile, genintfile, ReadIsGrid); template MString ActionGenIntFile::DoAction(const CLArgs& args, D& ds) { + auto resop = ds.Open(args); + if(resop.Exist()) return "Can't open source: " + resop; + michlib_internal::ParameterListEx pars; pars.UsePrefix(""); pars.SetParameter("source", args.at("source")); diff --git a/actions/actioninfo.h b/actions/actioninfo.h index 729f4f4..f3d5405 100644 --- a/actions/actioninfo.h +++ b/actions/actioninfo.h @@ -6,8 +6,10 @@ using michlib::message; ADD_ACTION(Info, info, InfoSupported); -template MString ActionInfo::DoAction([[maybe_unused]] const CLArgs& args, D& data) +template MString ActionInfo::DoAction(const CLArgs& args, D& data) { + auto resop = data.Open(args); + if(resop.Exist()) return "Can't open source: " + resop; auto info = data.Info(); if(!info.Exist()) return "No info"; message(info); diff --git a/actions/actiontsc.h b/actions/actiontsc.h index 295e504..6e45c8b 100644 --- a/actions/actiontsc.h +++ b/actions/actiontsc.h @@ -9,6 +9,9 @@ ADD_ACTION(TSC, tsc, ReadPSupported || ReadSupported); template MString ActionTSC::DoAction(const CLArgs& args, D& ds) { + auto resop = ds.Open(args); + if(resop.Exist()) return "Can't open source: " + resop; + michlib_internal::ParameterListEx pars; pars.UsePrefix(""); pars.SetParameter("source", args.at("source")); diff --git a/actions/actionuv.h b/actions/actionuv.h index dfda539..883a6ff 100644 --- a/actions/actionuv.h +++ b/actions/actionuv.h @@ -1,6 +1,6 @@ #pragma once -#include "actiondep.h" #include "BFileW.h" +#include "actiondep.h" #include using michlib::BFileW; @@ -9,6 +9,9 @@ ADD_ACTION(UV, uv, ReadPSupported || ReadSupported); template MString ActionUV::DoAction(const CLArgs& args, D& ds) { + auto resop = ds.Open(args); + if(resop.Exist()) return "Can't open source: " + resop; + michlib_internal::ParameterListEx pars; pars.UsePrefix(""); pars.SetParameter("source", args.at("source")); diff --git a/src/data.cpp b/src/data.cpp index 11bde1f..caa06d2 100644 --- a/src/data.cpp +++ b/src/data.cpp @@ -8,7 +8,5 @@ MString Data::Init(const CLArgs& args) bool res = internal::InitV(*this, src); if(!res) return "Unknown source: " + src; - auto resop = std::visit([&args = std::as_const(args)](auto& data) -> auto { return data.Open(args); }, *this); - if(resop.Exist()) return "Can't open source " + src + ":\n" + resop; return ""; }