summaryrefslogtreecommitdiff
path: root/src/command_proc_base.hh
diff options
context:
space:
mode:
authorMarat Nepomnyashy <marat@vyatta.com>2008-01-03 13:44:11 -0800
committerMarat Nepomnyashy <marat@vyatta.com>2008-01-03 13:44:11 -0800
commit9898653db6226eef9c5ac4e7dc9b6470d96bfb63 (patch)
tree984e12dde2bc8ea2ab07d63af5bb860f38ed0d46 /src/command_proc_base.hh
downloadvyatta-op-vpn-9898653db6226eef9c5ac4e7dc9b6470d96bfb63.tar.gz
vyatta-op-vpn-9898653db6226eef9c5ac4e7dc9b6470d96bfb63.zip
Initial checkin of VPN operations mechanism.
Diffstat (limited to 'src/command_proc_base.hh')
-rw-r--r--src/command_proc_base.hh82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/command_proc_base.hh b/src/command_proc_base.hh
new file mode 100644
index 0000000..d9820a8
--- /dev/null
+++ b/src/command_proc_base.hh
@@ -0,0 +1,82 @@
+/**
+ * Module: command_proc_base.hh
+ *
+ * Author: Michael Larson
+ * Date: 2005
+ * Description:
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ * Copyright 2006, Vyatta, Inc.
+ */
+#ifndef __COMMAND_PROC_BASE_HH__
+#define __COMMAND_PROC_BASE_HH__
+
+#include <assert.h>
+#include <vector>
+#include <list>
+#include <string>
+
+#define UNUSED(var) assert(sizeof(var) != 0)
+
+
+/**
+ * Derive from this class when you want to create a new unformatted to xml processing implementation.
+ *
+ **/
+class CommandProcBase
+{
+public:
+ typedef std::vector<std::string> StringColl;
+ typedef std::vector<std::string>::iterator StringIter;
+
+public:
+ CommandProcBase() {;}
+ virtual ~CommandProcBase() {;}
+
+ /**
+ *
+ **/
+ virtual std::string
+ process(const std::string &cmd, bool debug, std::string &reason) = 0;
+
+ /**
+ *
+ **/
+ static std::string
+ name() {return std::string("");}
+
+ /**
+ *
+ **/
+ virtual bool
+ is_valid() = 0;
+
+ /**
+ *
+ **/
+ virtual std::string
+ xsl() {return _xsl;}
+
+protected: //method
+ std::list<std::string>
+ tokenize(const std::string &line);
+
+protected:
+ std::string _xsl;
+};
+
+#endif