CMS 3D CMS Logo

Argz.h

Go to the documentation of this file.
00001 #ifndef CLASSLIB_ARGZ_H
00002 # define CLASSLIB_ARGZ_H
00003 
00004 //<<<<<< INCLUDES                                                       >>>>>>
00005 
00006 # include "classlib/sysapi/system.h"
00007 # include <string>
00008 # include <vector>
00009 
00010 namespace lat {
00011 //<<<<<< PUBLIC DEFINES                                                 >>>>>>
00012 //<<<<<< PUBLIC CONSTANTS                                               >>>>>>
00013 //<<<<<< PUBLIC TYPES                                                   >>>>>>
00014 //<<<<<< PUBLIC VARIABLES                                               >>>>>>
00015 //<<<<<< PUBLIC FUNCTIONS                                               >>>>>>
00016 //<<<<<< CLASS DECLARATIONS                                             >>>>>>
00017 
00018 class Argz
00019 {
00020 public:
00021     Argz (void);
00022     Argz (const std::string &command);
00023     Argz (const char **argz);
00024     Argz (const char *a1, const char *a2);
00025     Argz (const char *a1, const char *a2, const char *a3);
00026     Argz (const char *a1, const char *a2, const char *a3, const char *a4);
00027     Argz (const Argz &x);
00028     Argz &operator= (const Argz &x);
00029     ~Argz (void);
00030 
00031     Argz &              clear (void);
00032     Argz &              add (const char *arg);
00033     Argz &              add (const char **argz);
00034     Argz &              add (const Argz &x);
00035     const char **       argz (void) const;
00036     std::string         quote (void) const;
00037 
00038 private:
00039     void                reargz (size_t n);
00040     void                build (const char **argz);
00041     void                build (const std::string &command);
00042 
00043     std::string         m_data;
00044     std::vector<char *> m_argz;
00045 };
00046 
00047 //<<<<<< INLINE PUBLIC FUNCTIONS                                        >>>>>>
00048 //<<<<<< INLINE MEMBER FUNCTIONS                                        >>>>>>
00049 
00050 } // namespace lat
00051 #endif // CLASSLIB_ARGZ_H

Generated on Tue Jun 9 17:38:53 2009 for CMSSW by  doxygen 1.5.4