/*-------------------------------------------------------------*/
/***************************************************************
* A record is a file where we can save and read data. *
* Each data is separated by an empty newline. *
***************************************************************/
/*-------------------------------------------------------------*/
typedef enum {
NETWIB_RECORD_ENCODETYPE_HEXA0 = NETWIB_ENCODETYPE_HEXA0,
NETWIB_RECORD_ENCODETYPE_HEXA1 = NETWIB_ENCODETYPE_HEXA1,
NETWIB_RECORD_ENCODETYPE_HEXA2 = NETWIB_ENCODETYPE_HEXA2,
NETWIB_RECORD_ENCODETYPE_HEXA4 = NETWIB_ENCODETYPE_HEXA4,
NETWIB_RECORD_ENCODETYPE_MIXED0 = NETWIB_ENCODETYPE_MIXED0,
NETWIB_RECORD_ENCODETYPE_MIXED1 = NETWIB_ENCODETYPE_MIXED1,
NETWIB_RECORD_ENCODETYPE_HEXA0_WRAP = NETWIB_ENCODETYPE_HEXA0_WRAP,
NETWIB_RECORD_ENCODETYPE_HEXA1_WRAP = NETWIB_ENCODETYPE_HEXA1_WRAP,
NETWIB_RECORD_ENCODETYPE_HEXA2_WRAP = NETWIB_ENCODETYPE_HEXA2_WRAP,
NETWIB_RECORD_ENCODETYPE_HEXA4_WRAP = NETWIB_ENCODETYPE_HEXA4_WRAP,
NETWIB_RECORD_ENCODETYPE_MIXED0_WRAP = NETWIB_ENCODETYPE_MIXED0_WRAP,
NETWIB_RECORD_ENCODETYPE_MIXED1_WRAP = NETWIB_ENCODETYPE_MIXED1_WRAP,
NETWIB_RECORD_ENCODETYPE_DUMP = NETWIB_ENCODETYPE_DUMP,
NETWIB_RECORD_ENCODETYPE_MIXED0H_WRAP = NETWIB_ENCODETYPE_MIXED0H_WRAP,
NETWIB_RECORD_ENCODETYPE_MIXED1H_WRAP = NETWIB_ENCODETYPE_MIXED1H_WRAP,
NETWIB_RECORD_ENCODETYPE_BIN = 1000, /* binary */
NETWIB_RECORD_ENCODETYPE_PCAP, /* libpcap format */
/* aliases */
NETWIB_RECORD_ENCODETYPE_HEXA = NETWIB_RECORD_ENCODETYPE_HEXA1,
NETWIB_RECORD_ENCODETYPE_MIXED = NETWIB_RECORD_ENCODETYPE_MIXED1,
NETWIB_RECORD_ENCODETYPE_HEXA_WRAP = NETWIB_RECORD_ENCODETYPE_HEXA1_WRAP,
NETWIB_RECORD_ENCODETYPE_MIXED_WRAP = NETWIB_RECORD_ENCODETYPE_MIXED1_WRAP,
NETWIB_RECORD_ENCODETYPE_MIXEDH_WRAP = NETWIB_RECORD_ENCODETYPE_MIXED1H_WRAP
} netwib_record_encodetype;
/*-------------------------------------------------------------*/
/* Name : netwib_record_encodetype_init_kbd
Description :
Initialize a netwib_encodetype with data entered through keyboard.
Input parameter(s) :
*pmessage : message to print before
displayonlymostuseful : only most useful values are shown
defaultencodetype : default encodetype to use if user enters nothing
(if 0xFFFFFFFFu, means no default)
Input/output parameter(s) :
Output parameter(s) :
*pencodetype : netwib_encodetype initialized
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_record_encodetype_init_kbd(netwib_constbuf *pmessage,
netwib_bool displayonlymostuseful,
netwib_record_encodetype defaultencodetype,
netwib_record_encodetype *pencodetype);
#define NETWIB_RECORD_ENCODETYPE_INIT_KBD_NODEF (netwib_record_encodetype)0xFFFFFFFFu
/*-------------------------------------------------------------*/
/* Name : netwib_buf_append_record_encodetype
Description :
Append the description text of an encodetype.
Input parameter(s) :
encodetype : netwib_record_encodetype to append
Input/output parameter(s) :
*pbuf : buffer where text is appended
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_buf_append_record_encodetype(netwib_record_encodetype encodetype,
netwib_buf *pbuf);
/*-------------------------------------------------------------*/
/* Name : netwib_io_init_record
Description :
Open a record.
Input parameter(s) :
*precordname : filename of the record
Input/output parameter(s) :
Output parameter(s) :
**ppio : io created
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_io_init_record(netwib_constbuf *precordname,
netwib_file_inittype inittype,
netwib_record_encodetype encodetype,
netwib_io **ppio);
#define netwib_io_init_record_read(recordname,ppio) netwib_io_init_record(recordname,NETWIB_FILE_INITTYPE_READ,NETWIB_RECORD_ENCODETYPE_INIT_KBD_NODEF,ppio)
#define netwib_io_init_record_write(recordname,encodetype,ppio) netwib_io_init_record(recordname,NETWIB_FILE_INITTYPE_WRITE,encodetype,ppio)
#define netwib_io_init_record_append(recordname,ppio) netwib_io_init_record(recordname,NETWIB_FILE_INITTYPE_APPEND,NETWIB_RECORD_ENCODETYPE_INIT_KBD_NODEF,ppio)