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.
46 lines
1.2 KiB
46 lines
1.2 KiB
#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 if(src == "BINFILE") |
|
{ |
|
BINFILEData 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 ""; |
|
}
|
|
|