/* -*- mode: C; c-basic-offset: 4 -*- */

/* The purpose of this file is to provide access to the fifo_msg,
 * which is the stored representation of the brt_msg.
 * 
 * NOTE: Accessor functions return all values in host byte order.
 */

#ifndef TOKU_FIFO_MSG_H
#define TOKU_FIFO_MSG_H

#ident "$Id$"
#ident "Copyright (c) 2007-2010 Tokutek Inc.  All rights reserved."
#ident "The technology is licensed by the Massachusetts Institute of Technology, Rutgers State University of New Jersey, and the Research Foundation of State University of New York at Stony Brook under United States of America Serial No. 11/760379 and to the patents and/or patent applications resulting from it."

#if defined(__cplusplus) || defined(__cilkplusplus)
extern "C" {
#endif

u_int32_t fifo_msg_get_keylen(FIFO_MSG fifo_msg);

u_int32_t fifo_msg_get_vallen(FIFO_MSG fifo_msg);

XIDS fifo_msg_get_xids(FIFO_MSG fifo_msg);

void * fifo_msg_get_key(FIFO_MSG fifo_msg);

void * fifo_msg_get_val(FIFO_MSG fifo_msg);

enum brt_msg_type fifo_msg_get_type(FIFO_MSG fifo_msg);

u_int32_t fifo_msg_get_size(FIFO_MSG fifo_msg);

// Return number of bytes required for a fifo_msg created from
// the given brt_msg
u_int32_t fifo_msg_get_size_required(BRT_MSG brt_msg);

#if defined(__cplusplus) || defined(__cilkplusplus)
};
#endif

#endif

