#ifndef H_ED_SUN_20051109104619
#define H_ED_SUN_20051109104619

#ifdef __cplusplus
extern "C"
{
#endif

/* ---------------------------------------------------------------------
   (c) ED 2005
   Project      : clib/psock (portable sockets)
   Function     : UNIX sockets wrapper
   Module       : SUN
   File         : sun.h
   Created      : 09-11-2005
   Modified     : 15-11-2005
   --------------------------------------------------------------------- */

/* ---------------------------------------------------------------------
   Log

   1.1 15-11-2005 sun_last_remote() added
   1.0 10-11-2005 Initial version
   0.0 09-11-2005 Created

   --------------------------------------------------------------------- */
#include <stddef.h>
#include "psock/inc/psock.h"

/* macros ============================================================== */

/* constants =========================================================== */

typedef enum
{
   SUN_OK,

#define ITEM(n_, s_)\
   SUN_ERR_##n_,

#include "psock/inc/sun_err.itm"

#undef ITEM

   SUN_ERR_NB
}
sun_err_e;

/* types =============================================================== */

/* structures ========================================================== */

typedef struct sun sun_s;

/* functions =========================================================== */

/* Identification */
char const * sun_sid (void);
char const * sun_sver (void);
char const * sun_serr (sun_err_e err);

/* Dynamic constructor / destructor */
sun_s * sun_create (char const *s_loc);
void sun_delete (sun_s * self);


/* Data functions */
sun_err_e sun_send (sun_s * self, char const *s_dis, void const *p_data, size_t size, size_t *p_sentlen);
sun_err_e sun_receive (sun_s * self, void *p_data, size_t size, size_t *p_reclen);
   
/* Information functions */
SOCKET sun_sock (sun_s * const self);
char const *sun_last_remote (sun_s * const self);

#ifdef __cplusplus
}
#endif

/* ---------------------------------------------------------------------
   Generated by NEW (c) ED 2.8
   Powered by C-code generator library  1.2
   --------------------------------------------------------------------- */

#endif /* guard */
