[enet-cvs] CVS: enet callbacks.c,NONE,1.1

Lee Salzman enet at sferik.cubik.org
Mon Mar 29 13:43:36 PST 2004


Update of /home/enet/cvsroot/enet
In directory sferik:/tmp/cvs-serv2382

Added Files:
	callbacks.c 
Log Message:
new callbacks scheme


--- NEW FILE: callbacks.c ---
/** 
 @file callbacks.c
 @brief ENet callback functions
*/
#define ENET_BUILDING_LIB 1
#include "enet/enet.h"

static ENetCallbacks callbacks = { malloc, free, rand };

int
enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits)
{
   if (version != ENET_VERSION)
     return -1;

   if (inits -> malloc != NULL || inits -> free != NULL)
   {
      if (inits -> malloc == NULL || inits -> free == NULL)
        return -1;

      callbacks -> malloc = inits -> malloc;
      callbacks -> free = inits -> free;
   }
      
   if (inits -> rand != NULL)
     callbacks -> rand = inits -> rand;

   return enet_initialize ();
}
           
void *
enet_malloc (size_t size)
{
   void * memory = callbacks.malloc (size);

   if (memory == NULL)
     abort ();

   return memory;
}

void
enet_free (void * memory)
{
   callbacks.free (memory);
}

int
enet_rand (void)
{
   return callbacks.rand ();
}




More information about the enet-cvs mailing list