1 /* 2 3 Firewall Builder 4 5 Copyright (C) 2000 NetCitadel, LLC 6 7 Author: Vadim Kurland vadim@fwbuilder.org 8 9 $Id$ 10 11 12 This program is free software which we release under the GNU General Public 13 License. You may redistribute and/or modify this program under the terms 14 of that license as published by the Free Software Foundation; either 15 version 2 of the License, or (at your option) any later version. 16 17 This program is distributed in the hope that it will be useful, 18 but WITHOUT ANY WARRANTY; without even the implied warranty of 19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 GNU General Public License for more details. 21 22 To get a copy of the GNU General Public License, write to the Free Software 23 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 25 */ 26 27 #ifndef __FWOPTINS_HH_FLAG__ 28 #define __FWOPTINS_HH_FLAG__ 29 30 #include "fwbuilder/XMLTools.h" 31 #include "fwbuilder/FWObject.h" 32 33 namespace libfwbuilder 34 { 35 36 class FWOptions : public FWObject 37 { 38 public: 39 FWOptions(); 40 41 DECLARE_FWOBJECT_SUBTYPE(FWOptions); 42 DECLARE_DISPATCH_METHODS(FWOptions); 43 virtual void fromXML(xmlNodePtr parent) throw(FWException); 44 virtual xmlNodePtr toXML(xmlNodePtr parent) throw(FWException); isPrimaryObject()45 virtual bool isPrimaryObject() const { return false; } 46 }; 47 48 class HostOptions : public FWOptions 49 { 50 public: 51 HostOptions(); 52 53 DECLARE_FWOBJECT_SUBTYPE(HostOptions); 54 DECLARE_DISPATCH_METHODS(HostOptions); 55 }; 56 57 class FirewallOptions : public FWOptions 58 { 59 public: 60 FirewallOptions(); 61 62 DECLARE_FWOBJECT_SUBTYPE(FirewallOptions); 63 DECLARE_DISPATCH_METHODS(FirewallOptions); 64 }; 65 66 class InterfaceOptions : public FWOptions 67 { 68 public: 69 InterfaceOptions(); 70 71 DECLARE_FWOBJECT_SUBTYPE(InterfaceOptions); 72 DECLARE_DISPATCH_METHODS(InterfaceOptions); 73 }; 74 75 class RuleSetOptions : public FWOptions 76 { 77 public: 78 79 RuleSetOptions(); 80 81 DECLARE_FWOBJECT_SUBTYPE(RuleSetOptions); 82 DECLARE_DISPATCH_METHODS(RuleSetOptions); 83 }; 84 85 class PolicyRuleOptions : public FWOptions 86 { 87 public: 88 89 PolicyRuleOptions(); 90 91 DECLARE_FWOBJECT_SUBTYPE(PolicyRuleOptions); 92 DECLARE_DISPATCH_METHODS(PolicyRuleOptions); 93 }; 94 95 class NATRuleOptions : public FWOptions 96 { 97 public: 98 99 NATRuleOptions(); 100 101 DECLARE_FWOBJECT_SUBTYPE(NATRuleOptions); 102 DECLARE_DISPATCH_METHODS(NATRuleOptions); 103 }; 104 105 class RoutingRuleOptions : public FWOptions 106 { 107 public: 108 109 RoutingRuleOptions(); 110 111 DECLARE_FWOBJECT_SUBTYPE(RoutingRuleOptions); 112 DECLARE_DISPATCH_METHODS(RoutingRuleOptions); 113 }; 114 115 class ClusterGroupOptions : public FWOptions 116 { 117 public: 118 ClusterGroupOptions(); 119 120 DECLARE_FWOBJECT_SUBTYPE(ClusterGroupOptions); 121 DECLARE_DISPATCH_METHODS(ClusterGroupOptions); 122 }; 123 124 } 125 126 #endif // __FWOPTINS_HH_FLAG 127