summaryrefslogtreecommitdiff
path: root/src/lbdecision.hh
diff options
context:
space:
mode:
authorMichael Larson <slioch@eng-140.vyatta.com>2007-12-14 13:40:31 -0800
committerMichael Larson <slioch@eng-140.vyatta.com>2007-12-14 13:40:31 -0800
commit59b21be36b2f4cd74aa0cea53492e3023b59770b (patch)
treec1f1893bcba148eff202148f548328155bf729d4 /src/lbdecision.hh
downloadvyatta-wanloadbalance-59b21be36b2f4cd74aa0cea53492e3023b59770b.tar.gz
vyatta-wanloadbalance-59b21be36b2f4cd74aa0cea53492e3023b59770b.zip
initial check wan lbdebian/0.1
Signed-off-by: Michael Larson <slioch@eng-140.vyatta.com>
Diffstat (limited to 'src/lbdecision.hh')
-rw-r--r--src/lbdecision.hh70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/lbdecision.hh b/src/lbdecision.hh
new file mode 100644
index 0000000..299544a
--- /dev/null
+++ b/src/lbdecision.hh
@@ -0,0 +1,70 @@
+/*
+ * Module: lbdecision.hh
+ *
+ * **** License ****
+ * Version: VPL 1.0
+ *
+ * The contents of this file are subject to the Vyatta Public License
+ * Version 1.0 ("License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.vyatta.com/vpl
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * This code was originally developed by Vyatta, Inc.
+ * Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc.
+ * All Rights Reserved.
+ *
+ * Author: Michael Larson
+ * Date: 2007
+ * Description:
+ *
+ * **** End License ****
+ *
+ */
+#ifndef __LBDECISION_HH__
+#define __LBDECISION_HH__
+
+#include <map>
+#include <string>
+#include "lbdata.hh"
+
+using namespace std;
+
+class LBDecision
+{
+public:
+ typedef map<string,int> InterfaceMarkColl;
+ typedef map<string,int>::iterator InterfaceMarkIter;
+
+public:
+ LBDecision();
+ ~LBDecision();
+
+ void
+ init(LBData &lbdata);
+
+ void
+ run(LBData &lbdata);
+
+ void
+ shutdown();
+
+private:
+ void
+ execute(string cmd);
+
+ map<int,float>
+ get_new_weights(LBData &data, LBRule &rule);
+
+ string
+ get_application_cmd(LBRule &rule);
+
+private:
+ InterfaceMarkColl _iface_mark_coll;
+};
+
+#endif //__LBDECISION_HH__