X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=send.h;h=01e0d0a850586312d4c6f4376ee7373ccdde9f93;hp=80a268bf3d824bf2a60e4de9426715629420d898;hb=7007aedb78262af262e7e7db8d010c6498e79290;hpb=72d73eb53316768a5a3527cf56afad7158d9ef4d diff --git a/send.h b/send.h index 80a268bf..01e0d0a8 100644 --- a/send.h +++ b/send.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2010 Andre Noll + * Copyright (C) 2005-2013 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -87,6 +87,15 @@ struct sender { * pointer means this command is not implemented by this sender. */ int (*client_cmds[NUM_SENDER_CMDS])(struct sender_command_data*); + /** + * Resolve target-specific URL string + * + * This method must be defined if the sender supports the add/delete + * subcommands. It interprets a string specifying a target URL in a + * sender-specific fashion (e.g. embedded FEC string). It can also + * fill in sender-specific defaults if necessary. + */ + int (*resolve_target)(const char *, struct sender_command_data *); }; /** Describes one client, connected to a paraslash sender. */ @@ -122,8 +131,8 @@ struct fec_client_parms { uint8_t slices_per_group; /** Number of slices minus number of redundant slices. */ uint8_t data_slices_per_group; - /** Maximal number of bytes per slice, initially zero. */ - uint16_t max_slice_bytes; + /** Whether the header must be sent periodically. */ + bool need_periodic_header; /** * Transport-layer initialisation for FEC support. * @@ -137,7 +146,7 @@ struct fec_client_parms { */ int (*init_fec)(struct sender_client *sc); /** Push out FEC-encoded packets */ - int (*send_fec)(struct sender_client *sc, char *buf, size_t len); + void (*send_fec)(struct sender_client *sc, char *buf, size_t len); }; /** Describes the current status of one paraslash sender. */ @@ -160,9 +169,6 @@ struct sender_status { void shutdown_client(struct sender_client *sc, struct sender_status *ss); void shutdown_clients(struct sender_status *ss); -void send_chunk(struct sender_client *sc, struct sender_status *ss, - long unsigned current_chunk, const char *buf, size_t len, - const char *header_buf, size_t header_len); void init_sender_status(struct sender_status *ss, char **access_arg, int num_access_args, int port, int max_clients, int default_deny); char *get_sender_info(struct sender_status *ss, const char *name);