You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
996 B
40 lines
996 B
1 year ago
|
#define MICHLIB_NOSOURCE
|
||
|
#include "data.h"
|
||
|
|
||
|
MString Data::Init(const CLArgs& args)
|
||
|
{
|
||
|
MString src = args.contains("source") ? args.at("source") : "";
|
||
|
if(!src.Exist()) return "No source specified";
|
||
|
if(src == "NEMO")
|
||
|
{
|
||
|
NEMOData data;
|
||
|
auto res = data.Open(args);
|
||
|
if(res.Exist()) return "Can't open source " + src + ":\n" + res;
|
||
|
*this = Data(std::move(data));
|
||
|
}
|
||
|
else if(src == "AVISO")
|
||
|
{
|
||
|
AVISOData data;
|
||
|
auto res = data.Open(args);
|
||
|
if(res.Exist()) return "Can't open source " + src + ":\n" + res;
|
||
|
*this = Data(std::move(data));
|
||
|
}
|
||
|
else if(src == "AVISOLOCAL")
|
||
|
{
|
||
|
AVISOLOCALData data;
|
||
|
auto res = data.Open(args);
|
||
|
if(res.Exist()) return "Can't open source " + src + ":\n" + res;
|
||
|
*this = Data(std::move(data));
|
||
|
}
|
||
|
else if(src == "HYCOM")
|
||
|
{
|
||
|
HYCOMData data;
|
||
|
auto res = data.Open(args);
|
||
|
if(res.Exist()) return "Can't open source " + src + ":\n" + res;
|
||
|
*this = Data(std::move(data));
|
||
|
}
|
||
|
else
|
||
|
return "Unknown source: " + src;
|
||
|
return "";
|
||
|
}
|