]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - db.h
db.h: Kill an unused enum
[paraslash.git] / db.h
diff --git a/db.h b/db.h
index 34ea52d1d3423b678222332cea01e84afc22b122..cf55b46ff621d789e4eb6d67eb28d6cf793ac08c 100644 (file)
--- a/db.h
+++ b/db.h
  *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  */
 
-/** \file db.h data structures common to all database tools */
+/** \file db.h data structures common to all audio file selectors */
+
+#include <sys/select.h>
+
 
 int find_audio_files(const char *dirname, int (*f)(const char *, const char *));
 
@@ -78,7 +81,7 @@ char **(*get_audio_file_list)(unsigned int num);
  * passed \a update_audio_file().
  *
  */
-void  (*update_audio_file)(char *audio_file);
+void (*update_audio_file)(char *audio_file);
 /**
  *
  * shutdown this database tool and free all resources
@@ -86,8 +89,33 @@ void  (*update_audio_file)(char *audio_file);
  * This gets called whenever the database tool changes (via the cdt command),
  * or when para_server receives the HUP signal, or when para_server shuts down.
  * It is assumed to succeed.
-*/
+ */
 void (*shutdown)(void);
+/**
+ *
+ * add file descriptors to fd_sets
+ *
+ * The pre_select function of the activated database tool gets called just
+ * before para_server enters its main select loop. The dbtool may add its own
+ * file descriptors to the \a rfds or the \a wfds set.
+ *
+ * If a file descriptor was added, \a max_fileno must be increased by
+ * this function, if neccessary.
+ *
+ * \sa select(2)
+ */
+int (*pre_select)(fd_set *rfds, fd_set *wfds);
+/**
+ * handle the file descriptors which are ready for I/O
+ *
+ * If the pre_select hook added one ore more file descriptors to the read or write
+ * set, this is the hook to check the result and do any I/O on those descriptors
+ * which are ready for reading/writing.
+ */
+void (*post_select)(fd_set *rfds, fd_set *wfds);
+/**
+ * each dbtool has its private data pointer */
+void *private_data;
 };
 
 int mysql_dbtool_init(struct dbtool*);