unify msg delivery callback

This commit is contained in:
Markus Teich 2016-12-02 11:45:05 +01:00
parent 1bf5fbff77
commit 0ba8f80bc1
3 changed files with 30 additions and 44 deletions

View File

@ -185,7 +185,7 @@ seller_start (void *arg)
struct BRANDT_Auction *
BRANDT_new (BRANDT_CbResult result,
BRANDT_CbBroadcast broadcast,
BRANDT_CbDeliver broadcast,
BRANDT_CbStart start,
void *auction_closure,
void **auction_desc,
@ -284,8 +284,8 @@ BRANDT_parse_desc (const void *auction_desc,
struct BRANDT_Auction *
BRANDT_join (BRANDT_CbResult result,
BRANDT_CbBroadcast broadcast,
BRANDT_CbUnicast unicast,
BRANDT_CbDeliver broadcast,
BRANDT_CbDeliver unicast,
void *auction_closure,
const void *auction_desc,
size_t auction_desc_len,

View File

@ -68,36 +68,22 @@ typedef uint16_t
/**
* Functions of this type are called by libbrandt to broadcast messages to the
* blackboard of a specific auction. They have to be sent using authenticated
* encryption.
* Functions of this type are called by libbrandt to deliver messages to other
* participants of an auction. There are two variants how this Callback needs to
* be implemented. The first is delivering messages as unicast directly to the
* seller, the second is delivering messages as broadcast to all participants
* (bidders + seller). All messages need to be authenticated and encrypted
* before sending and the signature needs to be checked immediately after
* receipt.
*
* @param[in] auction_closure Closure pointer representing the respective
* auction. This is the Pointer given to BRANDT_join().
* @param[in] msg The message to be broadcast to all participants of
* @a auction_closure.
* auction. This is the Pointer given to BRANDT_join() / BRANDT_new().
* @param[in] msg The message to be delivered
* @param[in] msg_len The length of the message @a msg in bytes.
* @return 0 on success, -1 on failure.
*/
typedef int
(*BRANDT_CbBroadcast)(void *auction_closure,
const void *msg,
size_t msg_len);
/**
* Functions of this type are called by libbrandt to unicast messages to the
* seller of a specific auction. They have to be sent using authenticated
* encryption.
*
* @param[in] auction_closure Closure pointer representing the respective
* auction. This is the Pointer given to BRANDT_join().
* @param[in] msg The message to be sent to the seller of @a auction_closure.
* @param[in] msg_len The length of the message @a msg in bytes.
* @return 0 on success, -1 on failure.
*/
typedef int
(*BRANDT_CbUnicast)(void *auction_closure,
(*BRANDT_CbDeliver)(void *auction_closure,
const void *msg,
size_t msg_len);
@ -167,8 +153,8 @@ BRANDT_parse_desc (const void *auction_desc,
*/
struct BRANDT_Auction *
BRANDT_join (BRANDT_CbResult result,
BRANDT_CbBroadcast broadcast,
BRANDT_CbUnicast unicast,
BRANDT_CbDeliver broadcast,
BRANDT_CbDeliver unicast,
void *auction_closure,
const void *auction_desc,
size_t auction_desc_len,
@ -208,7 +194,7 @@ BRANDT_join (BRANDT_CbResult result,
*/
struct BRANDT_Auction *
BRANDT_new (BRANDT_CbResult result,
BRANDT_CbBroadcast broadcast,
BRANDT_CbDeliver broadcast,
BRANDT_CbStart start,
void *auction_closure,
void **auction_desc,

View File

@ -111,8 +111,8 @@ struct BRANDT_Auction {
void *closure; /** auction closure given by the user */
BRANDT_CbResult result; /** result reporting callback */
BRANDT_CbBroadcast bcast; /** broadcast callback */
BRANDT_CbUnicast ucast; /** unicast callback */
BRANDT_CbDeliver bcast; /** broadcast callback */
BRANDT_CbDeliver ucast; /** unicast callback */
BRANDT_CbStart start; /** start callback */
int seller_mode; /** If 0 we are bidding, selling otherwise */