nidas v1.2.3
Public Member Functions | Public Attributes | Private Member Functions | List of all members
nidas::core::NidasAppArgv Struct Reference

Convert vector<string> args to dynamically allocated (argc, argv) pair which will be freed when the instance is destroyed. More...

#include <NidasApp.h>

Public Member Functions

 NidasAppArgv (const std::string &argv0, const std::vector< std::string > &args)
 
ArgVector unparsedArgs (int optindex)
 Given the opt index after getopt() finishes, return a vector of any remaining arguments, suitable for passing to NidasApp::parseInputs().
 
 ~NidasAppArgv ()
 

Public Attributes

std::vector< char * > vargv
 
char ** argv
 
int argc
 

Private Member Functions

 NidasAppArgv (const NidasAppArgv &)
 
NidasAppArgvoperator= (const NidasAppArgv &)
 

Detailed Description

Convert vector<string> args to dynamically allocated (argc, argv) pair which will be freed when the instance is destroyed.

This is useful for passing leftover NidasApp command-line arguments to getopt() functions. The argv array includes the process name, as expected by getopt().

NidasApp app('data_dump');
// Parse standard arguments and leave the rest.
ArgVector args = app.parseArgs(ArgVector(argv, argv+argc));
while ((opt_char = getopt(left.argc, left.argv, "...")) != -1) {
...
}
NidasApp handles common options for NIDAS applications.
Definition NidasApp.h:576
Sample * getSample(sampleType type, unsigned int len)
A convienence method for getting a sample of an enumerated type from a pool.
Definition Sample.cc:70
std::vector< std::string > ArgVector
Convenience typedef for handling the command-line argv as a vector of strings.
Definition NidasApp.h:55
Convert vector<string> args to dynamically allocated (argc, argv) pair which will be freed when the i...
Definition NidasApp.h:1520
char ** argv
Definition NidasApp.h:1554
int argc
Definition NidasApp.h:1555

Constructor & Destructor Documentation

◆ NidasAppArgv() [1/2]

nidas::core::NidasAppArgv::NidasAppArgv ( const std::string & argv0,
const std::vector< std::string > & args )
inline

◆ ~NidasAppArgv()

nidas::core::NidasAppArgv::~NidasAppArgv ( )
inline

References argc, nidas::core::getSample(), and vargv.

◆ NidasAppArgv() [2/2]

nidas::core::NidasAppArgv::NidasAppArgv ( const NidasAppArgv & )
private

Member Function Documentation

◆ operator=()

NidasAppArgv & nidas::core::NidasAppArgv::operator= ( const NidasAppArgv & )
private

◆ unparsedArgs()

ArgVector nidas::core::NidasAppArgv::unparsedArgs ( int optindex)
inline

Given the opt index after getopt() finishes, return a vector of any remaining arguments, suitable for passing to NidasApp::parseInputs().

References vargv.

Member Data Documentation

◆ argc

int nidas::core::NidasAppArgv::argc

◆ argv

char** nidas::core::NidasAppArgv::argv

◆ vargv

std::vector<char*> nidas::core::NidasAppArgv::vargv

The documentation for this struct was generated from the following file: