class PacketFilter
{
public:
struct FilterException : public GenericException
{
FilterException(const char *message);
FilterException(const std::string &message);
operator std::string() const;
};
virtual void Save() = 0; // Save current state
virtual void Restore() = 0; // Restore previous saved state.
virtual void Insert(const PermitRule *rule) = 0; // Insert filter rule
virtual void Insert(const RejectRule *rule) = 0; // Insert filter rule
virtual void Insert(const PolicyRule *rule) = 0; // Insert policy rule
virtual void Remove(const PermitRule *rule) = 0; // Remove filter rule
virtual void Remove(const RejectRule *rule) = 0; // Remove filter rule
virtual void Remove(const PolicyRule *rule) = 0; // Remove policy rule
virtual void Flush(Rule::Chain chain) = 0; // Flush filter chain rules.
virtual void Commit() = 0; // Commit queued filter rules.
};