66// ArgumentProcessorMain
77
88ArgumentProcessorMain::ArgumentProcessorMain ()
9- : WsjcppArgumentProcessor({" main" }, " Examples " ) {
9+ : WsjcppArgumentProcessor({" main" }, " Short description " , " Here long description. " ) {
1010 TAG = " ArgumentProcessorMain" ;
1111 registrySingleArgument (" --single1" , " Single 1" );
1212 registrySingleArgument (" --single2" , " Single 2" );
13- registryParameterArgument (" -param1" , " Param 1" );
14- registryParameterArgument (" -param2" , " Param 2" );
13+ registryParameterArgument (" -param1" , " P " , " Param 1" );
14+ registryParameterArgument (" -param2" , " P " , " Param 2" );
1515 registryExample (" wsjcpp --single1 -param1 1" );
16- // registryProcessor(new ArgumentProcessorOtherProcessor ());
16+ registryProcessor (new ArgumentProcessorSubcommand1 ());
1717}
1818
1919// ---------------------------------------------------------------------
@@ -36,8 +36,64 @@ bool ArgumentProcessorMain::applyParameterArgument(
3636
3737// ---------------------------------------------------------------------
3838
39- int ArgumentProcessorMain::exec (const std::string & sProgramName , const std::vector<std::string> &vSubParams) {
39+ int ArgumentProcessorMain::exec (const std::vector<std:: string> &vRoutes , const std::vector<std::string> &vSubParams) {
4040 WsjcppLog::err (TAG, " Not implemented" );
4141 return -1 ;
4242}
4343
44+
45+ // ---------------------------------------------------------------------
46+ // ArgumentProcessorSubcommand1
47+
48+ ArgumentProcessorSubcommand1::ArgumentProcessorSubcommand1 ()
49+ : WsjcppArgumentProcessor(
50+ {" subcommand1" , " sc1" },
51+ " Subcommand1" ,
52+ " Example of subcommand1 with long description must be here 12345678901234567890 lol"
53+ ) {
54+ TAG = " ArgumentProcessorSubcommand1" ;
55+ registrySingleArgument (" --silent" , " Silent mode. Will be print 'silent' - no more." );
56+ registrySingleArgument (" --first" , " First. Will be print 'first' - no more." );
57+ registryParameterArgument (" -times" , " N" , " How much times print line 'test'" );
58+
59+ m_bSilent = false ;
60+ m_bFirst = false ;
61+ m_nTimesTest = 0 ;
62+ }
63+
64+ // ---------------------------------------------------------------------
65+
66+ bool ArgumentProcessorSubcommand1::applySingleArgument (const std::string &sProgramName , const std::string &sArgumentName ) {
67+ if (sArgumentName == " --silent" ) {
68+ m_bSilent = true ;
69+ return true ;
70+ }
71+
72+ if (sArgumentName == " --first" ) {
73+ m_bFirst = true ;
74+ return true ;
75+ }
76+
77+ return false ;
78+ }
79+
80+ // ---------------------------------------------------------------------
81+
82+ bool ArgumentProcessorSubcommand1::applyParameterArgument (const std::string &sProgramName , const std::string &sArgumentName , const std::string &sValue ) {
83+ if (sArgumentName == " -times" ) {
84+ m_nTimesTest = std::atoi (sValue .c_str ());
85+ return true ;
86+ }
87+ return false ;
88+ }
89+
90+ // ---------------------------------------------------------------------
91+
92+ int ArgumentProcessorSubcommand1::exec (const std::vector<std::string> &vRoutes, const std::vector<std::string> &vSubParams) {
93+ WsjcppLog::info (TAG, " Exec" );
94+ for (int i = 0 ; i < m_nTimesTest; i++) {
95+ std::cout << i << " : test" << std::endl;
96+ }
97+ return 0 ;
98+ }
99+
0 commit comments