X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=db.h;h=3b9d4530189b0b32438da96eb1556d21f456a155;hp=69d4d9ed04308eb4a5c66505bcb03b3c4762a9c0;hb=ec58ecae85b1491efb1c25d78d83bc83b9e6a10b;hpb=c141cc6915a32fb92766dc27f0df222d13f27d8b diff --git a/db.h b/db.h index 69d4d9ed..3b9d4530 100644 --- a/db.h +++ b/db.h @@ -16,45 +16,44 @@ * 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 + int find_audio_files(const char *dirname, int (*f)(const char *, const char *)); /** - * describes one of para_server's supported database tools - * - * There is exactly one such struct for each supported database tool. During - * the startup part of para_server the \a init() function of the activated - * database tool gets called which fills in the other members. - + * describes one supported audio file selector * + * There is one such struct for each supported selector. During the startup + * part of para_server the \a init() function of the activated selector gets + * called which fills in all other function pointers. * */ -struct dbtool { +struct audio_file_selector { /** - * name name of this database tool + * name name of this selector */ const char *name; /** - * the database init routine + * the init routine of the selector * * It should check its command line options and do all necessary initialization * like connecting to a database server. * * A negative return value indicates an initialization error and means that - * this database tool should be ignored for now (it may later be activated - * again via the cdt command). + * this selector should be ignored for now (it may later be activated again via + * the chs command). * * If \a init() returns success (non-negative return value), it must have - * initialized in all non-optional function pointers of the given dbtool + * initialized in all non-optional function pointers of the given selector * struct. Moreover, \a cmd_list must point to a NULL-terminated array which - * holds the list of all commands that are supported by this database tool. + * holds the list of all commands that are supported by this selector. */ -int (*init)(struct dbtool *self); +int (*init)(struct audio_file_selector *self); /** - * list of commands supported by this dbtool + * list of commands supported by this selector */ struct server_command *cmd_list; /** @@ -83,23 +82,24 @@ char **(*get_audio_file_list)(unsigned int num); void (*update_audio_file)(char *audio_file); /** * - * shutdown this database tool and free all resources + * shutdown this selector and free all resources * - * 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. + * This gets called whenever the audio file selector changes. The reason for + * this change might be that some user sent the chs command, that para_server + * receives the HUP signal, or that 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. + * The pre_select function of the activated selector gets called just before + * para_server enters its main select loop. The selector 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. + * \return The highest-numbered file descriptor which was added to either of + * the two fd sets (or -1 if no file descriptors were added). * * \sa select(2) */ @@ -112,9 +112,12 @@ int (*pre_select)(fd_set *rfds, fd_set *wfds); * which are ready for reading/writing. */ void (*post_select)(fd_set *rfds, fd_set *wfds); +/** + * each selector has its private data pointer */ +void *private_data; }; -int mysql_dbtool_init(struct dbtool*); -int plm_dbtool_init(struct dbtool*); -int random_dbtool_init(struct dbtool*); +int mysql_selector_init(struct audio_file_selector*); +int playlist_selector_init(struct audio_file_selector*); +int random_selector_init(struct audio_file_selector*);