aboutsummaryrefslogtreecommitdiffstats
path: root/conditions.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-12-04 07:32:05 +0000
committerGuy Harris <guy@alum.mit.edu>2001-12-04 07:32:05 +0000
commita1660d6d3afbaeccd77d8e34c695bf65a4f4f09e (patch)
tree20e71ed2ee0399b430f10ab92177fb1d5fc7e953 /conditions.h
parent9426c4ad15826cee237cc1f822c8a758d01473f6 (diff)
Support for stopping capture at specified capture file size or capture
duration, from Thomas Wittwer and Matthias Nyffenegger. svn path=/trunk/; revision=4322
Diffstat (limited to 'conditions.h')
-rw-r--r--conditions.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/conditions.h b/conditions.h
new file mode 100644
index 0000000000..1aceaf95cb
--- /dev/null
+++ b/conditions.h
@@ -0,0 +1,134 @@
+/* conditions.h
+ * Header for condition handler.
+ *
+ * $Id: conditions.h,v 1.1 2001/12/04 07:32:00 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef CONDITIONS_H
+#define CONDITIONS_H
+
+#include <stdarg.h>
+
+#include <glib.h>
+
+/* forward declaration for type 'condition' */
+typedef struct condition condition;
+
+/* condition evaluation handler type */
+typedef gboolean (*_cnd_eval)(condition*, va_list);
+
+/* condition reset handler type */
+typedef void (*_cnd_reset)(condition*);
+
+/* condition class constructor type */
+typedef condition* (*_cnd_constr)(condition*, va_list);
+
+/* condition class destructor type */
+typedef void (*_cnd_destr)(condition*);
+
+/*
+ * Conditions must be created with this function. They can be created for
+ * registered classes only.
+ *
+ * parameter: const char* - Identification of a registered condition class.
+ * ... - Any number of class specific initial values.
+ * returns: Pointer to a initialized condition of the particular class on
+ * success or NULL on failure.
+ */
+condition* cnd_new(const char*, ...);
+
+/*
+ * Conditions must be deleted with this function when not used anymore.
+ *
+ * parameter: condition* - Pointer to a condition created with 'cnd_new()'.
+ * returns: -
+ */
+void cnd_delete(condition*);
+
+/*
+ * Call this function to check whether or not a particular condition is true.
+ *
+ * parameter: condition* - Pointer to an initialized condition.
+ * ... - Any number of condition specific arguments.
+ * returns: TRUE - Condition is true.
+ * FALSE - Condition is false.
+ */
+gboolean cnd_eval(condition*, ...);
+
+/*
+ * Call this function to reset this condition to its initial state, i.e. the
+ * state it was in right after creation.
+ *
+ * parameter: condition* - Pointer to an initialized condition.
+ * returns: -
+ */
+void cnd_reset(condition*);
+
+/*
+ * Register a new conditon class.
+ * New conditions of this class can be created by calling 'cnd_new()' and
+ * supplying the appropriate class id.
+ *
+ * parameter: const char* - The class id.
+ * _cnd_constr - User supplied constructor function for this
+ * class.
+ * _cnd_destr - User supplied destructor function for this
+ * class.
+ * _cnd_eval - User supplied evaluation handler function for this
+ class.
+ * _cnd_reset - User supplied reset handler for this class.
+ * returns: TRUE - Success.
+ * FALSE - Failure.
+ */
+gboolean cnd_register_class(const char*,
+ _cnd_constr,
+ _cnd_destr,
+ _cnd_eval,
+ _cnd_reset);
+
+/*
+ * Unregister a previously registered conditon class. After unregistration
+ * of a class it is no longer possible to create conditions of this kind by
+ * calling 'cnd_new()'.
+ *
+ * parameter: const char* - An identification for this condition class.
+ * returns: -
+ */
+void cnd_unregister_class(const char*);
+
+/*
+ * This function returns the user data of the condition.
+ *
+ * parameter: condition* - Pointer to an initialized condition.
+ * returns: void* - Pointer to user data of this condition.
+ */
+void* cnd_get_user_data(condition*);
+
+/*
+ * This function sets the user data of the condition.
+ *
+ * parameter: condition* - Pointer to an initialized condition.
+ * void* - Pointer to user specified data structure.
+ * returns: -
+ */
+void cnd_set_user_data(condition*, void*);
+
+#endif /* CONDITIONS_H */