Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Servers/Common/vtkCommandOptions.h

Go to the documentation of this file.
00001 /*=========================================================================
00002   
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkCommandOptions.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00024 #ifndef __vtkCommandOptions_h
00025 #define __vtkCommandOptions_h
00026 
00027 #include "vtkObject.h"
00028 
00029 class vtkCommandOptionsInternal;
00030 
00031 class VTK_EXPORT vtkCommandOptions : public vtkObject
00032 {
00033 public:
00034   static vtkCommandOptions* New();
00035   vtkTypeRevisionMacro(vtkCommandOptions,vtkObject);
00036   void PrintSelf(ostream& os, vtkIndent indent);
00037 
00038   int Parse(int argc, const char* const argv[]);
00039   void GetRemainingArguments(int* argc, char** argv[]);
00040   const char* GetHelp();
00041 
00042   enum
00043     {
00044     EVERYBODY = 0,
00045     XMLONLY = 0x1
00046     };
00047 
00049 
00050   vtkGetMacro(HelpSelected, int);
00052 
00054 
00056   int GetProcessType() { return this->ProcessType;}
00057   void SetProcessType(int p) {this->ProcessType = p;}
00059 
00061 
00063   vtkGetStringMacro(UnknownArgument);
00065 
00067 
00068   vtkGetStringMacro(ErrorMessage);
00070 
00072   const char* GetArgv0();
00073 
00075   int GetLastArgument();
00076 
00079   virtual int ParseExtraXMLTag(const char* , const char** ) {return 1;}
00080 
00081 protected:
00083   vtkCommandOptions();
00084 
00086   virtual ~vtkCommandOptions();
00087 
00089 
00098   void AddBooleanArgument(const char* longarg, const char* shortarg,
00099                           int* var, const char* help, int type=EVERYBODY);
00100   void AddDeprecatedArgument(const char* longarg, const char* shortarg,
00101                              const char* help, int type=EVERYBODY);
00102   void AddArgument(const char* longarg, const char* shortarg,
00103                    int* var, const char* help, int type=EVERYBODY);
00104   void AddArgument(const char* longarg, const char* shortarg,
00105                    char** var, const char* help, int type=EVERYBODY);
00107   
00109   virtual void Initialize();
00110 
00112   virtual int PostProcess(int argc, const char* const* argv);
00113 
00116   virtual int WrongArgument(const char* argument);
00117 
00120   virtual int DeprecatedArgument(const char* argument);
00121 
00125   int LoadXMLConfigFile(const char*);
00126 
00127   vtkSetStringMacro(UnknownArgument);
00128 
00129   vtkSetStringMacro(ErrorMessage);
00130 
00131   // Options:
00132   vtkSetStringMacro(XMLConfigFile);
00133 
00134   void CleanArgcArgv();
00135 
00136 private:
00137   int Argc;
00138   char** Argv;
00139   int HelpSelected;
00140   char* UnknownArgument;
00141   char* ErrorMessage;
00142   char* XMLConfigFile;
00143   int ProcessType; // data-server, render-server, combined-server, client
00144 
00145   vtkCommandOptions(const vtkCommandOptions&); // Not implemented
00146   void operator=(const vtkCommandOptions&); // Not implemented
00147 
00148   vtkCommandOptionsInternal* Internals;
00149 
00150   static int UnknownArgumentHandler(const char* argument, void* call_data);
00151   static int DeprecatedArgumentHandler(const char* argument, const char* value, void* call_data);
00152 };
00153 
00154 #endif
00155 

Generated on Tue May 30 12:31:45 2006 for ParaView by doxygen 1.3.5