#pragma once // [cfg-cmd.h]: configurable variable class 'cfgCommand' // // -------------------------------------------------------------------------------------------- // #include "cfg-vec.h" namespace scm { class cfgCommand { public: // add argument // -------------------------------------------------------------------------------------------- // bool add_arg(const cfgVector& _arg); // -------------------------------------------------------------------------------------------- // // change command name // -------------------------------------------------------------------------------------------- // void set_name(const char* _name); // -------------------------------------------------------------------------------------------- // // reset command, narg == 0 // -------------------------------------------------------------------------------------------- // void reset(); // -------------------------------------------------------------------------------------------- // // get & check calls // -------------------------------------------------------------------------------------------- // int get_narg() const; cfgVector get_arg(const int idx) const; bool is_name_eq(const char* ex_name) const; const char* get_name() const; // -------------------------------------------------------------------------------------------- // // print // -------------------------------------------------------------------------------------------- // void print() const; // -------------------------------------------------------------------------------------------- // // swap & assignment // -------------------------------------------------------------------------------------------- // const cfgCommand& operator=(cfgCommand cmd); void swap(cfgCommand& cmd); // -------------------------------------------------------------------------------------------- // // -------------------------------------------------------------------------------------------- // cfgCommand(); cfgCommand(const cfgCommand& cmd); ~cfgCommand(); // -------------------------------------------------------------------------------------------- // private: // data (private): // -------------------------------------------------------------------------------------------- // cfgVector *arg; int narg; int nalloc; static const int c_nalloc_inc = 2; char* name; size_t name_memsize; }; } // -------------------------------------------------------------------------------------------- //