![]() |
Nilorea Library
C utilities for networking, threading, graphics
|
Data Structures | |
| struct | NETW_MSG |
| network message, array of char and int More... | |
Macros | |
| #define | NETMSG_BOX 8 |
| Network Message is box retrieving reply: (int x , int y , int z , N_STR *data ) | |
| #define | NETMSG_GET_BOX 7 |
| Network Message is box retrieve: int x , int y , int z. | |
| #define | NETMSG_IDENT_REPLY_NOK 2 |
| Network Message is identification reply NON OK: (int)type , (int)id , (N_STR *)name , (N_STR *)password. | |
| #define | NETMSG_IDENT_REPLY_OK 1 |
| Network Message is identification reply OK : (int)type , (int)id , (N_STR *)name , (N_STR *)password. | |
| #define | NETMSG_IDENT_REQUEST 0 |
| Network Message is identification request: (int)type , (int)id , (N_STR *)name , (N_STR *)password. | |
| #define | NETMSG_PING_REPLY 6 |
| Network Message is ping reply: (int)type , (int)id_from , (int)id_to. | |
| #define | NETMSG_PING_REQUEST 5 |
| Network Message is ping request: (int)type , (int)id_from , (int)id_to. | |
| #define | NETMSG_POSITION 4 |
| Network Message position: (int)type , (int)id , (int)X , (int)Y , (int)x_shift , (int)y_shift ,(int)vx ,(int)vy , (int)speed , (int)acceleration , (int)time_stamp. | |
| #define | NETMSG_QUIT 9 |
| Network asking for exit. | |
| #define | NETMSG_STRING 3 |
| Network Message is string: (int)type , (int)id , (N_STR *)name , (N_STR *)chan , (N_STR *)text , (int)color. | |
| #define | NETW_MSG_MAX_STRING_LENGTH (1024UL * 1024UL * 1024UL) |
| Maximum allowed length for a single string inside a network message (default: 1 GB). | |
Functions | |
| int | add_int_to_msg (NETW_MSG *msg, int value) |
| add an int to the message | |
| int | add_nb_to_msg (NETW_MSG *msg, double value) |
| add a float/double to the message | |
| int | add_nstrdup_to_msg (NETW_MSG *msg, N_STR *str) |
| add a duplicate of a N_STR to the message | |
| int | add_nstrptr_to_msg (NETW_MSG *msg, N_STR *str) |
| add a N_STR pointer to the message without copying | |
| int | add_strdup_to_msg (NETW_MSG *msg, const char *str) |
| add a duplicate of a char string to the message | |
| int | create_msg (NETW_MSG **msg) |
| create a NETW_MSG object | |
| int | delete_msg (NETW_MSG **msg) |
| delete a NETW_MSG object | |
| double | double_swap (double value) |
| swap bytes of a double value | |
| int | empty_msg (NETW_MSG **msg) |
| empty a NETW_MSG object | |
| int | get_int_from_msg (NETW_MSG *msg, int *value) |
| get an int from the message | |
| int | get_nb_from_msg (NETW_MSG *msg, double *value) |
| get a float/double value from the message | |
| int | get_nstr_from_msg (NETW_MSG *msg, N_STR **str) |
| get a N_STR string from the message | |
| int | get_str_from_msg (NETW_MSG *msg, char **str) |
| get a char string from the message | |
| double | htond (double value) |
| convert host double to network byte order | |
| NETW_MSG * | make_msg_from_str (N_STR *str) |
| deserialize a N_STR into a NETW_MSG | |
| N_STR * | make_str_from_msg (NETW_MSG *msg) |
| serialize a NETW_MSG into a single N_STR | |
| N_STR * | netmsg_make_ident (int type, int id, N_STR *name, N_STR *passwd) |
| create an identification network message | |
| N_STR * | netmsg_make_ping (int type, int id_from, int id_to, int time) |
| create a ping network message | |
| N_STR * | netmsg_make_position_msg (int id, double X, double Y, double vx, double vy, double acc_x, double acc_y, int time_stamp) |
| create a position network message | |
| N_STR * | netmsg_make_quit_msg (void) |
| create a quit network message | |
| N_STR * | netmsg_make_string_msg (int id_from, int id_to, N_STR *name, N_STR *chan, N_STR *txt, int color) |
| create a string network message | |
| int | netw_get_ident (N_STR *msg, int *type, int *ident, N_STR **name, N_STR **passwd) |
| get identification data from a network message | |
| int | netw_get_ping (N_STR *msg, int *type, int *from, int *to, int *time) |
| get ping data from a network message | |
| int | netw_get_position (N_STR *msg, int *id, double *X, double *Y, double *vx, double *vy, double *acc_x, double *acc_y, int *time_stamp) |
| get position data from a network message | |
| int | netw_get_quit (N_STR *msg) |
| get quit data from a network message | |
| int | netw_get_string (N_STR *msg, int *id, N_STR **name, N_STR **chan, N_STR **txt, int *color) |
| get string data from a network message | |
| int | netw_msg_get_type (N_STR *msg) |
| get the type of a network message. | |
| double | ntohd (double value) |
| convert network double to host byte order | |
| struct NETW_MSG |
network message, array of char and int
Definition at line 72 of file n_network_msg.h.
Collaboration diagram for NETW_MSG:| Data Fields | ||
|---|---|---|
| LIST * | tabflt | array of casted double value |
| LIST * | tabint | array of int |
| LIST * | tabstr | array of N_STR |
| #define NETMSG_BOX 8 |
Network Message is box retrieving reply: (int x , int y , int z , N_STR *data )
Definition at line 61 of file n_network_msg.h.
| #define NETMSG_GET_BOX 7 |
Network Message is box retrieve: int x , int y , int z.
Definition at line 59 of file n_network_msg.h.
| #define NETMSG_IDENT_REPLY_NOK 2 |
Network Message is identification reply NON OK: (int)type , (int)id , (N_STR *)name , (N_STR *)password.
Definition at line 49 of file n_network_msg.h.
| #define NETMSG_IDENT_REPLY_OK 1 |
Network Message is identification reply OK : (int)type , (int)id , (N_STR *)name , (N_STR *)password.
Definition at line 47 of file n_network_msg.h.
| #define NETMSG_IDENT_REQUEST 0 |
Network Message is identification request: (int)type , (int)id , (N_STR *)name , (N_STR *)password.
Definition at line 45 of file n_network_msg.h.
| #define NETMSG_PING_REPLY 6 |
Network Message is ping reply: (int)type , (int)id_from , (int)id_to.
Definition at line 57 of file n_network_msg.h.
| #define NETMSG_PING_REQUEST 5 |
Network Message is ping request: (int)type , (int)id_from , (int)id_to.
Definition at line 55 of file n_network_msg.h.
| #define NETMSG_POSITION 4 |
Network Message position: (int)type , (int)id , (int)X , (int)Y , (int)x_shift , (int)y_shift ,(int)vx ,(int)vy , (int)speed , (int)acceleration , (int)time_stamp.
Definition at line 53 of file n_network_msg.h.
| #define NETMSG_QUIT 9 |
Network asking for exit.
Definition at line 63 of file n_network_msg.h.
| #define NETMSG_STRING 3 |
Network Message is string: (int)type , (int)id , (N_STR *)name , (N_STR *)chan , (N_STR *)text , (int)color.
Definition at line 51 of file n_network_msg.h.
| #define NETW_MSG_MAX_STRING_LENGTH (1024UL * 1024UL * 1024UL) |
Maximum allowed length for a single string inside a network message (default: 1 GB).
Override before including this header to change the limit.
Definition at line 68 of file n_network_msg.h.
| int add_int_to_msg | ( | NETW_MSG * | msg, |
| int | value | ||
| ) |
add an int to the message
add an int to the message
| msg | A NETW_MSG *object to complete with the value |
| value | The value to add to the message |
Definition at line 178 of file n_network_msg.c.
References __n_assert, Free, list_push(), Malloc, and NETW_MSG::tabint.
Referenced by build_chat_msg(), client_worker_echo(), make_msg_from_str(), netmsg_make_ident(), netmsg_make_ping(), netmsg_make_position_msg(), netmsg_make_quit_msg(), netmsg_make_string_msg(), and send_net_datas().
Here is the call graph for this function:
Here is the caller graph for this function:| int add_nb_to_msg | ( | NETW_MSG * | msg, |
| double | value | ||
| ) |
add a float/double to the message
add a float/double to the message
| msg | A NETW_MSG *object to complete with the value |
| value | The value to add to the message |
Definition at line 155 of file n_network_msg.c.
References __n_assert, Free, list_push(), Malloc, and NETW_MSG::tabflt.
Referenced by make_msg_from_str(), and netmsg_make_position_msg().
Here is the call graph for this function:
Here is the caller graph for this function:add a duplicate of a N_STR to the message
add a duplicate of a N_STR to the message
| msg | A NETW_MSG *object to complete with the string |
| str | The string to add to the message |
Definition at line 214 of file n_network_msg.c.
References __n_assert, N_STR::data, free_nstr_ptr(), list_push(), nstrdup(), and NETW_MSG::tabstr.
Referenced by netmsg_make_ident(), netmsg_make_string_msg(), and send_net_datas().
Here is the call graph for this function:
Here is the caller graph for this function:add a N_STR pointer to the message without copying
add a N_STR pointer to the message without copying
| msg | A NETW_MSG *object to complete with the string |
| str | The string to add to the message |
Definition at line 201 of file n_network_msg.c.
References __n_assert, N_STR::data, free_nstr_ptr(), list_push(), and NETW_MSG::tabstr.
Referenced by client_worker_echo(), make_msg_from_str(), and send_net_datas().
Here is the call graph for this function:
Here is the caller graph for this function:| int add_strdup_to_msg | ( | NETW_MSG * | msg, |
| const char * | str | ||
| ) |
add a duplicate of a char string to the message
add a duplicate of a char string to the message
| msg | A NETW_MSG *object to complete with the string |
| str | The string to add to the message |
Definition at line 229 of file n_network_msg.c.
References __n_assert, char_to_nstr(), free_nstr_ptr(), list_push(), and NETW_MSG::tabstr.
Referenced by build_chat_msg().
Here is the call graph for this function:
Here is the caller graph for this function:| int create_msg | ( | NETW_MSG ** | msg | ) |
create a NETW_MSG object
create a NETW_MSG object
| msg | A NETW_MSG *object |
Definition at line 89 of file n_network_msg.c.
References __n_assert, Free, list_destroy(), LOG_ERR, Malloc, MAX_LIST_ITEMS, n_log, and new_generic_list().
Referenced by build_chat_msg(), client_worker_echo(), make_msg_from_str(), netmsg_make_ident(), netmsg_make_ping(), netmsg_make_position_msg(), netmsg_make_quit_msg(), netmsg_make_string_msg(), and send_net_datas().
Here is the call graph for this function:
Here is the caller graph for this function:| int delete_msg | ( | NETW_MSG ** | msg | ) |
delete a NETW_MSG object
delete a NETW_MSG object
| msg | A NETW_MSG *object to delete |
Definition at line 113 of file n_network_msg.c.
References __n_assert, Free, list_destroy(), LOG_ERR, and n_log.
Referenced by build_chat_msg(), client_worker_echo(), decode_chat_msg(), get_net_datas(), make_msg_from_str(), netmsg_make_ident(), netmsg_make_ping(), netmsg_make_position_msg(), netmsg_make_quit_msg(), netmsg_make_string_msg(), netw_get_ident(), netw_get_ping(), netw_get_position(), netw_get_quit(), netw_get_string(), and send_net_datas().
Here is the call graph for this function:
Here is the caller graph for this function:| double double_swap | ( | double | value | ) |
swap bytes of a double value
swap bytes of a double value
| value | The double to swap |
Definition at line 36 of file n_network_msg.c.
Referenced by htond(), and ntohd().
Here is the caller graph for this function:| int empty_msg | ( | NETW_MSG ** | msg | ) |
empty a NETW_MSG object
empty a NETW_MSG object
| msg | A NETW_MSG **object |
Definition at line 138 of file n_network_msg.c.
References __n_assert, and list_empty().
Here is the call graph for this function:| int get_int_from_msg | ( | NETW_MSG * | msg, |
| int * | value | ||
| ) |
get an int from the message
get an int from the message
| msg | A NETW_MSG *object for extracting int |
| value | An int pointer where the result will be stored |
Definition at line 265 of file n_network_msg.c.
References __n_assert, Free, list_shift, and NETW_MSG::tabint.
Referenced by decode_chat_msg(), get_net_datas(), netw_get_ident(), netw_get_ping(), netw_get_position(), netw_get_quit(), and netw_get_string().
Here is the caller graph for this function:| int get_nb_from_msg | ( | NETW_MSG * | msg, |
| double * | value | ||
| ) |
get a float/double value from the message
get a float/double value from the message
| msg | A NETW_MSG *object for extracting number |
| value | A double pointer where the result will be stored |
Definition at line 245 of file n_network_msg.c.
References __n_assert, Free, list_shift, and NETW_MSG::tabflt.
Referenced by netw_get_position().
Here is the caller graph for this function:get a N_STR string from the message
get a N_STR string from the message
Definition at line 286 of file n_network_msg.c.
References __n_assert, list_shift, LOG_ERR, n_log, and NETW_MSG::tabstr.
Referenced by get_net_datas(), netw_get_ident(), and netw_get_string().
Here is the caller graph for this function:| int get_str_from_msg | ( | NETW_MSG * | msg, |
| char ** | value | ||
| ) |
get a char string from the message
get a char string from the message
Definition at line 308 of file n_network_msg.c.
References __n_assert, N_STR::data, Free, list_shift, LOG_ERR, n_log, and NETW_MSG::tabstr.
Referenced by decode_chat_msg().
Here is the caller graph for this function:| double htond | ( | double | value | ) |
convert host double to network byte order
convert host double to network byte order
| value | The value to eventually swap |
Definition at line 59 of file n_network_msg.c.
References double_swap().
Referenced by make_str_from_msg().
Here is the call graph for this function:
Here is the caller graph for this function:deserialize a N_STR into a NETW_MSG
deserialize a N_STR into a NETW_MSG
Definition at line 456 of file n_network_msg.c.
References __n_assert, add_int_to_msg(), add_nb_to_msg(), add_nstrptr_to_msg(), create_msg(), N_STR::data, delete_msg(), Free, N_STR::length, LOG_ERR, Malloc, n_log, NETW_MSG_MAX_STRING_LENGTH, ntohd(), and N_STR::written.
Referenced by decode_chat_msg(), get_net_datas(), netw_get_ident(), netw_get_ping(), netw_get_position(), netw_get_quit(), and netw_get_string().
Here is the call graph for this function:
Here is the caller graph for this function:serialize a NETW_MSG into a single N_STR
serialize a NETW_MSG into a single N_STR
Definition at line 331 of file n_network_msg.c.
References __n_assert, N_STR::data, Free, free_nstr, htond(), N_STR::length, LOG_ERR, Malloc, n_log, LIST::nb_items, LIST_NODE::next, LIST_NODE::ptr, LIST::start, NETW_MSG::tabflt, NETW_MSG::tabint, NETW_MSG::tabstr, and N_STR::written.
Referenced by build_chat_msg(), client_worker_echo(), netmsg_make_ident(), netmsg_make_ping(), netmsg_make_position_msg(), netmsg_make_quit_msg(), netmsg_make_string_msg(), and send_net_datas().
Here is the call graph for this function:
Here is the caller graph for this function:create an identification network message
create an identification network message
| type | type of identification ( NETW_IDENT_REQUEST , NETW_IDENT_NEW ) |
| id | The ID of the sending client |
| name | Username |
| passwd | Password |
Definition at line 666 of file n_network_msg.c.
References __n_assert, add_int_to_msg(), add_nstrdup_to_msg(), create_msg(), delete_msg(), and make_str_from_msg().
Referenced by netw_send_ident().
Here is the call graph for this function:
Here is the caller graph for this function:| N_STR * netmsg_make_ping | ( | int | type, |
| int | id_from, | ||
| int | id_to, | ||
| int | time | ||
| ) |
create a ping network message
create a ping network message
| type | NETW_PING_REQUEST or NETW_PING_REPLY |
| id_from | Identifiant of the sender |
| id_to | Identifiant of the destination, -1 if the serveur itslef is targetted |
| time | The time it was when the ping was sended |
Definition at line 626 of file n_network_msg.c.
References __n_assert, add_int_to_msg(), create_msg(), delete_msg(), and make_str_from_msg().
Referenced by netw_send_ping().
Here is the call graph for this function:
Here is the caller graph for this function:| N_STR * netmsg_make_position_msg | ( | int | id, |
| double | X, | ||
| double | Y, | ||
| double | vx, | ||
| double | vy, | ||
| double | acc_x, | ||
| double | acc_y, | ||
| int | time_stamp | ||
| ) |
create a position network message
create a position network message
| id | The ID of the sending client |
| X | x position |
| Y | y position |
| vx | x speed |
| vy | y speed |
| acc_x | x acceleration |
| acc_y | y acceleration |
| time_stamp | time when the position were copier |
Definition at line 709 of file n_network_msg.c.
References __n_assert, add_int_to_msg(), add_nb_to_msg(), create_msg(), delete_msg(), make_str_from_msg(), and NETMSG_POSITION.
Referenced by netw_send_position().
Here is the call graph for this function:
Here is the caller graph for this function:| N_STR * netmsg_make_quit_msg | ( | void | ) |
create a quit network message
create a quit network message
Definition at line 820 of file n_network_msg.c.
References __n_assert, add_int_to_msg(), create_msg(), delete_msg(), make_str_from_msg(), and NETMSG_QUIT.
Referenced by netw_send_quit().
Here is the call graph for this function:
Here is the caller graph for this function:| N_STR * netmsg_make_string_msg | ( | int | id_from, |
| int | id_to, | ||
| N_STR * | name, | ||
| N_STR * | chan, | ||
| N_STR * | txt, | ||
| int | color | ||
| ) |
create a string network message
create a string network message
| id_from | The ID of the sending client |
| id_to | id of the destination |
| name | name of the user |
| chan | targeted channel |
| txt | text to send |
| color | color of the text |
Definition at line 769 of file n_network_msg.c.
References __n_assert, add_int_to_msg(), add_nstrdup_to_msg(), create_msg(), delete_msg(), make_str_from_msg(), and NETMSG_STRING.
Referenced by netw_send_string_to(), and netw_send_string_to_all().
Here is the call graph for this function:
Here is the caller graph for this function:get identification data from a network message
get identification data from a network message
| msg | The source string from which we are going to extract the data |
| type | NETMSG_IDENT_NEW , NETMSG_IDENT_REPLY_OK , NETMSG_IDENT_REPLY_NOK , NETMSG_IDENT_REQUEST |
| ident | ID for the user |
| name | Name of the user |
| passwd | Password of the user |
Definition at line 882 of file n_network_msg.c.
References __n_assert, delete_msg(), free_nstr, get_int_from_msg(), get_nstr_from_msg(), LOG_ERR, make_msg_from_str(), n_log, NETMSG_IDENT_REPLY_NOK, NETMSG_IDENT_REPLY_OK, and NETMSG_IDENT_REQUEST.
Here is the call graph for this function:| int netw_get_ping | ( | N_STR * | msg, |
| int * | type, | ||
| int * | from, | ||
| int * | to, | ||
| int * | time | ||
| ) |
get ping data from a network message
get ping data from a network message
| msg | The source string from which we are going to extract the data |
| type | NETW_PING_REQUEST or NETW_PING_REPLY |
| from | Identifiant of the sender |
| to | Targetted Identifiant, -1 for server ping |
| time | The time it was when the ping was sended |
Definition at line 1039 of file n_network_msg.c.
References __n_assert, delete_msg(), get_int_from_msg(), LOG_ERR, make_msg_from_str(), n_log, NETMSG_PING_REPLY, and NETMSG_PING_REQUEST.
Here is the call graph for this function:| int netw_get_position | ( | N_STR * | msg, |
| int * | id, | ||
| double * | X, | ||
| double * | Y, | ||
| double * | vx, | ||
| double * | vy, | ||
| double * | acc_x, | ||
| double * | acc_y, | ||
| int * | time_stamp | ||
| ) |
get position data from a network message
get position data from a network message
| msg | The source string from which we are going to extract the data |
| id | |
| X | X position inside a big grid |
| Y | Y position inside a big grid |
| vx | X speed |
| vy | Y speed |
| acc_x | X acceleration |
| acc_y | Y acceleration |
| time_stamp | Current Time when it was sended (for some delta we would want to compute ) |
Definition at line 931 of file n_network_msg.c.
References __n_assert, delete_msg(), get_int_from_msg(), get_nb_from_msg(), LOG_ERR, make_msg_from_str(), n_log, and NETMSG_POSITION.
Here is the call graph for this function:| int netw_get_quit | ( | N_STR * | msg | ) |
get quit data from a network message
get quit data from a network message
| msg | The source string from which we are going to extract the data |
Definition at line 1077 of file n_network_msg.c.
References __n_assert, delete_msg(), get_int_from_msg(), make_msg_from_str(), and NETMSG_QUIT.
Here is the call graph for this function:| int netw_get_string | ( | N_STR * | msg, |
| int * | id, | ||
| N_STR ** | name, | ||
| N_STR ** | chan, | ||
| N_STR ** | txt, | ||
| int * | color | ||
| ) |
get string data from a network message
get string data from a network message
| msg | The source string from which we are going to extract the data |
| id | The ID of the sending client |
| name | Name of user |
| chan | Target Channel, if any. Pass "ALL" to target the default channel |
| txt | The text to send |
| color | The color of the text |
Definition at line 982 of file n_network_msg.c.
References __n_assert, delete_msg(), free_nstr, get_int_from_msg(), get_nstr_from_msg(), LOG_ERR, make_msg_from_str(), n_log, and NETMSG_STRING.
Here is the call graph for this function:| int netw_msg_get_type | ( | N_STR * | msg | ) |
get the type of a network message.
Returns the type value (>=0) on success, -1 on error
get the type of a network message.
| msg | A char *msg_object you want to have type |
Definition at line 843 of file n_network_msg.c.
References __n_assert, N_STR::data, LOG_ERR, n_log, and N_STR::written.
Referenced by manage_client().
Here is the caller graph for this function:| double ntohd | ( | double | value | ) |
convert network double to host byte order
convert network double to host byte order
| value | The value to eventually swap |
Definition at line 74 of file n_network_msg.c.
References double_swap().
Referenced by make_msg_from_str().
Here is the call graph for this function:
Here is the caller graph for this function: