Hey all.
Here is the network API as it currently stands/I currently see it:
// Set up the packet, along with if you are encoding or decoding
net_begin(enum_direction_enum, MESSAGE_TYPES);
// Fill the packet
net_uint32_t(uint32_t*);
// Finalise the packet and send
net_end();
The idea is that you pass a pointer to each of the functions, which
if sending will be used for the data itself while if recv'ing will be
used as the location to place the data. The advantage of this is that
a single function is able to both encode and decode data. Using these
primitives more complex functions that process structures can be
developed.
Currently most MESSAGE_TYPES have two functions, a send and recv one.
I have no intention to change this, however I do plan to create a
third function which deals with processing packets (sending or
recving). The send and recv functions will then call this third
tertiary function to deal with the packet.
The potential disadvantages to this API are:
- The use of globals for the packet and direction (will this ever
be a problem?)
- We end up adding more functions
However the advantages are great, including:
- Abstraction from platform specifics
- Easy to update function definitions (one function does both send
and recv)
If everyone is happy with this then I will get to work on the
primitives (probably in a new file such as netprimivites.{c|h}) and
then submit them. Next I will work with whoever is willing to lend a
hand to update the 1,000 or so source code changes which need to be
made.
Regards, Freddie.
_______________________________________________
Warzone-dev mailing list
[email protected]
https://mail.gna.org/listinfo/warzone-dev