9d7edb54586720fe1aca6007dfe3e3714fe0e853
[platform/upstream/iotivity.git] / examples / ocicuc / driver.cpp
1
2 #include <iostream>
3
4 #include <sys/types.h>
5 #include <sys/socket.h>
6
7 #include <boost/program_options.hpp>
8
9 #include "exec.hpp"
10
11 namespace Intel { namespace OCDemo {
12
13 auto parse_options(boost::program_options::options_description& desc, int argc, char *argv[]) 
14     -> boost::program_options::variables_map 
15 {
16  namespace po = boost::program_options;
17
18  po::positional_options_description popts;
19  popts.add("uri", -1);
20
21  po::variables_map vm;
22
23  po::store(po::command_line_parser(argc,argv).options(desc).positional(popts).run(), 
24            vm);
25
26  po::notify(vm);
27
28  return vm;
29 }
30
31 }} // namespace Intel::OCDemo
32
33 int main(int argc, char *argv[])
34 try
35 {
36  using namespace std;
37  
38  auto desc = Intel::OCDemo::make_description();
39  auto vm   = Intel::OCDemo::parse_options(desc, argc, argv);
40
41  if(1 == argc || vm.count("help"))
42   {
43     std::cerr << desc << '\n';
44     return 1;
45   }
46
47  return Intel::OCDemo::exec(vm);
48 }
49 catch(std::exception& e)
50 {
51  std::cerr << "Unhandled exception: " << e.what() << '\n';
52  return 1;
53 }
54 catch(...)
55 {
56  std::cerr << "Unhandled exception.\n";
57  return 1;
58 }