Skip to content

Commit

Permalink
fix: raise error is jsonapi is invalid
Browse files Browse the repository at this point in the history
  • Loading branch information
sileht committed Dec 2, 2020
1 parent f24a62e commit 0e0a892
Showing 1 changed file with 78 additions and 27 deletions.
105 changes: 78 additions & 27 deletions main/dede.cc
Expand Up @@ -19,6 +19,8 @@
* along with deepdetect. If not, see <http://www.gnu.org/licenses/>.
*/

#include <iostream>

#include "deepdetect.h"
#ifdef USE_COMMAND_LINE
#ifdef USE_CAFFE
Expand All @@ -45,7 +47,7 @@ using namespace dd;

DEFINE_int32(jsonapi, 0,
"whether to use the JSON command line API ("
#ifdef USE_HTTP_SERVER
#if defined(USE_HTTP_SERVER) || defined(USE_HTTP_SERVER_OATPP)
"0: HTTP server JSON "
#endif // USE_HTTP_SERVER
#ifdef USE_COMMAND_LINE
Expand All @@ -59,49 +61,98 @@ DEFINE_int32(jsonapi, 0,
#ifdef USE_HTTP_SERVER_OATPP
"3: HTTP server JSON (oat++ version)"
#endif // USE_HTTP_SERVER_OATPP
#ifdef USE_HTTP_SERVER
"4: HTTP server JSON (cppnetlib version)"
#endif // USE_HTTP_SERVER

);

void invalid_jsonapi_flag(const std::string option)
{
std::cerr << "--jsonapi=" << FLAGS_jsonapi
<< " is unavailable. deepdetect has been compiled without "
<< option << std::endl;
}

int main(int argc, char *argv[])
{
google::ParseCommandLineFlags(&argc, &argv, true);
#ifdef USE_XGBOOST
rabit::Init(argc, argv);
#endif // USE_XGBOOST

#ifdef USE_HTTP_SERVER
if (FLAGS_jsonapi == 0)
{
DeepDetect<HttpJsonAPI> dd;
dd.boot(argc, argv);
}
#endif // USE_HTTP_SERVER
#ifdef USE_COMMANDLINE
#ifdef USE_CAFFE
if (FLAGS_jsonapi == 2)
{
DeepDetect<CommandLineAPI> dd;
dd.boot(argc, argv);
}
#endif // USE_CAFFE
#ifdef USE_JSON_API
if (FLAGS_jsonapi == 1)
switch (FLAGS_jsonapi)
{
DeepDetect<CommandLineJsonAPI> dd;
dd.boot(argc, argv);
}
case 0:
#if defined(USE_HTTP_SERVER) || defined(USE_HTTP_SERVER_OATPP)
{
#ifdef USE_HTTP_SERVER
DeepDetect<HttpJsonAPI> dd;
#else
DeepDetect<OatppJsonAPI> dd;
#endif // USE_HTTP_SERVER_OATPP
dd.boot(argc, argv);
}
break;
#else
invalid_jsonapi_flag("USE_HTTP_SERVER OR USE_HTTP_SERVER_OATPP");
return 1;
#endif // USE_HTTP_SERVER OR USE_HTTP_SERVER_OATPP

case 1:
#if defined(USE_JSON_API) && defined(USE_COMMANDLINE)
{
DeepDetect<CommandLineJsonAPI> dd;
dd.boot(argc, argv);
}
break;
#else // USE_JSON_API
invalid_jsonapi_flag("USE_JSON_API and USE_COMMANDLINE");
return 1;
#endif // USE_JSON_API
#endif // USE_COMMANDLINE

case 2:
#if defined(USE_CAFFE) && defined(USE_COMMANDLINE)
{
DeepDetect<CommandLineAPI> dd;
dd.boot(argc, argv);
}
break;
#else // USE_CAFFE
invalid_jsonapi_flag("USE_CAFFE and USE_COMMANDLINE");
return 1;
#endif // USE_CAFFE

case 3:
#ifdef USE_HTTP_SERVER_OATPP
if (FLAGS_jsonapi == 3)
{
DeepDetect<OatppJsonAPI> dd;
dd.boot(argc, argv);
}
{
DeepDetect<OatppJsonAPI> dd;
dd.boot(argc, argv);
}
break;
#else // USE_HTTP_SERVER_OATPP
invalid_jsonapi_flag("USE_HTTP_SERVER_OATPP");
return 1;
#endif // USE_HTTP_SERVER_OATPP

case 4:
#ifdef USE_HTTP_SERVER
{
DeepDetect<HttpJsonAPI> dd;
dd.boot(argc, argv);
}
break;
#else // USE_HTTP_SERVER
invalid_jsonapi_flag("USE_HTTP_SERVER");
return 1;
#endif // USE_HTTP_SERVER

default:
std::cerr << "--jsonapi value is invalid" << std::endl;
return 1;
}
#ifdef USE_XGBOOST
rabit::Finalize();
#endif
return 0;
}

0 comments on commit 0e0a892

Please sign in to comment.