00001 #pragma once
00002 #ifndef SEAP_PACKET_H
00003 #define SEAP_PACKET_H
00004
00005 #include <seap-message.h>
00006 #include <seap-command.h>
00007 #include <seap-error.h>
00008
00009 typedef struct SEAP_packet SEAP_packet_t;
00010
00011 #define SEAP_PACKET_INV 0x00
00012 #define SEAP_PACKET_MSG 0x01
00013 #define SEAP_PACKET_ERR 0x02
00014 #define SEAP_PACKET_CMD 0x03
00015 #define SEAP_PACKET_RAW 0x04
00016
00017 SEAP_packet_t *SEAP_packet_new (void);
00018 void SEAP_packet_free (SEAP_packet_t *packet);
00019
00020 void *SEAP_packet_settype (SEAP_packet_t *packet, uint8_t type);
00021 uint8_t SEAP_packet_gettype (SEAP_packet_t *packet);
00022
00023 SEAP_msg_t *SEAP_packet_msg (SEAP_packet_t *packet);
00024 SEAP_cmd_t *SEAP_packet_cmd (SEAP_packet_t *packet);
00025 SEAP_err_t *SEAP_packet_err (SEAP_packet_t *packet);
00026
00027 int SEAP_packet_recv (SEAP_CTX_t *ctx, int sd, SEAP_packet_t **packet);
00028 int SEAP_packet_recv_bytype (SEAP_CTX_t *ctx, int sd, SEAP_packet_t **packet, uint8_t type);
00029 int SEAP_packet_send (SEAP_CTX_t *ctx, int sd, SEAP_packet_t *packet);
00030 int SEAP_packet_enqueue (SEAP_CTX_t *ctx, int sd, SEAP_packet_t *packet);
00031
00032 #endif