summaryrefslogtreecommitdiff
path: root/tclap-1.2.1/include/tclap/VersionVisitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'tclap-1.2.1/include/tclap/VersionVisitor.h')
-rw-r--r--tclap-1.2.1/include/tclap/VersionVisitor.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/tclap-1.2.1/include/tclap/VersionVisitor.h b/tclap-1.2.1/include/tclap/VersionVisitor.h
new file mode 100644
index 0000000..c110d4f
--- /dev/null
+++ b/tclap-1.2.1/include/tclap/VersionVisitor.h
@@ -0,0 +1,81 @@
+// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*-
+
+/******************************************************************************
+ *
+ * file: VersionVisitor.h
+ *
+ * Copyright (c) 2003, Michael E. Smoot .
+ * All rights reverved.
+ *
+ * See the file COPYING in the top directory of this distribution for
+ * more information.
+ *
+ * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+
+#ifndef TCLAP_VERSION_VISITOR_H
+#define TCLAP_VERSION_VISITOR_H
+
+#include <tclap/CmdLineInterface.h>
+#include <tclap/CmdLineOutput.h>
+#include <tclap/Visitor.h>
+
+namespace TCLAP {
+
+/**
+ * A Vistor that will call the version method of the given CmdLineOutput
+ * for the specified CmdLine object and then exit.
+ */
+class VersionVisitor: public Visitor
+{
+ private:
+ /**
+ * Prevent accidental copying
+ */
+ VersionVisitor(const VersionVisitor& rhs);
+ VersionVisitor& operator=(const VersionVisitor& rhs);
+
+ protected:
+
+ /**
+ * The CmdLine of interest.
+ */
+ CmdLineInterface* _cmd;
+
+ /**
+ * The output object.
+ */
+ CmdLineOutput** _out;
+
+ public:
+
+ /**
+ * Constructor.
+ * \param cmd - The CmdLine the output is generated for.
+ * \param out - The type of output.
+ */
+ VersionVisitor( CmdLineInterface* cmd, CmdLineOutput** out )
+ : Visitor(), _cmd( cmd ), _out( out ) { }
+
+ /**
+ * Calls the version method of the output object using the
+ * specified CmdLine.
+ */
+ void visit() {
+ (*_out)->version(*_cmd);
+ throw ExitException(0);
+ }
+
+};
+
+}
+
+#endif