MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / parse_args

Function parse_args

tests/DCPS/ManyTopicMultiProcess/subscriber.cpp:45–111  ·  view source on GitHub ↗

parse the command line arguments

Source from the content-addressed store, hash-verified

43
44/// parse the command line arguments
45int parse_args(int argc, ACE_TCHAR *argv[]) {
46 u_long mask = ACE_LOG_MSG->priority_mask(ACE_Log_Msg::PROCESS);
47 ACE_LOG_MSG->priority_mask(mask | LM_TRACE | LM_DEBUG, ACE_Log_Msg::PROCESS);
48 ACE_Arg_Shifter arg_shifter(argc, argv);
49
50 while (arg_shifter.is_anything_left()) {
51 // options:
52 // -T synch directory
53 // -i num_ops_per_thread defaults to 10
54 // -r num_datareaders defaults to 1
55 // -n max_samples_per_instance defaults to INFINITE
56 // -z verbose transport debug
57
58 const ACE_TCHAR *currentArg = 0;
59
60 if ((currentArg = arg_shifter.get_the_parameter(ACE_TEXT("-T"))) != 0) {
61 synch_dir = currentArg;
62 arg_shifter.consume_arg();
63
64 } else if ((currentArg = arg_shifter.get_the_parameter(ACE_TEXT("-i"))) != 0) {
65 num_ops_per_thread = ACE_OS::atoi(currentArg);
66 arg_shifter.consume_arg();
67
68 } else if ((currentArg = arg_shifter.get_the_parameter(ACE_TEXT("-n"))) != 0) {
69 max_samples_per_instance = ACE_OS::atoi(currentArg);
70 arg_shifter.consume_arg();
71
72 } else if ((currentArg = arg_shifter.get_the_parameter(ACE_TEXT("-s"))) != 0) {
73 int t = ACE_OS::atoi(currentArg);
74 arg_shifter.consume_arg();
75
76 switch (t) {
77 case 1: topics |= TOPIC_T1; break;
78 case 2: topics |= TOPIC_T2; break;
79 case 3: topics |= TOPIC_T3; break;
80 case 4: topics |= TOPIC_T4; break;
81 case 5: topics |= TOPIC_T5; break;
82 default:
83 ACE_ERROR((LM_ERROR,
84 ACE_TEXT("(%P|%t) Invalid topic id (must be 1-5).\n")));
85 return 1;
86 }
87
88 } else if ((currentArg = arg_shifter.get_the_parameter(ACE_TEXT("-p"))) != 0) {
89 int t = ACE_OS::atoi(currentArg);
90 arg_shifter.consume_arg();
91
92 switch (t) {
93 case 6: publish_topics |= TOPIC_T6; break;
94 case 7: publish_topics |= TOPIC_T7; break;
95 default:
96 ACE_ERROR((LM_ERROR,
97 ACE_TEXT("(%P|%t) Invalid topic id (must be 6-7).\n")));
98 return 1;
99 }
100
101 } else if (arg_shifter.cur_arg_strncasecmp(ACE_TEXT("-z")) == 0) {
102 TURN_ON_VERBOSE_DEBUG;

Callers 1

ACE_TMAINFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected