MiniGUI API Reference (MiniGUI-Processes)
v3.2.0
A mature and proven cross-platform GUI system for embedded and smart IoT devices
|
Data Structures | |
struct | _REQUEST |
Macros | |
#define | MAX_SYS_REQID 0x0020 |
Maximal system reserved request identifier. More... | |
#define | MAX_REQID 0x0030 |
Maximal request identifier. More... | |
Typedefs | |
typedef struct _REQUEST | REQUEST |
typedef REQUEST * | PREQUEST |
typedef int(* | REQ_HANDLER) (int cli, int clifd, void *buff, size_t len) |
Request handler. More... | |
Functions | |
MG_EXPORT int GUIAPI | ClientRequestEx (const REQUEST *request, const void *ex_data, int ex_data_len, void *result, int len_rslt) |
Sends a request to the server and wait reply. More... | |
static int | ClientRequest (const REQUEST *request, void *result, int len_rslt) |
Sends a request to the server and wait reply. More... | |
MG_EXPORT int GUIAPI | GetSockFD2Server (void) |
Gets the file descriptor of the socket connected to the server. More... | |
MG_EXPORT int GUIAPI | ServerSendReply (int clifd, const void *reply, int len) |
Sends the reply to the client. More... | |
MG_EXPORT BOOL GUIAPI | RegisterRequestHandler (int req_id, REQ_HANDLER your_handler) |
Registers a customize request handler. More... | |
MG_EXPORT REQ_HANDLER GUIAPI | GetRequestHandler (int req_id) |
Gets the request handler by request identifier. More... | |
You can register a customized request handler to extend your server, i.e. mginit, of MiniGUI-Processes.
A request consists of an identifier and the data associated with the request. The identifier is used by MiniGUI to determine which handler should be called when a request arrives. When MiniGUI finds one handler, it will call the handler and pass the socket fd connected to the client, the data associated with the request, and the length of the data. Eventually, the handler will sent the reply to the client.
After register a customized request handler in your server, you can call ClientRequest function in the client to send a request to the server and wait for the reply. On the other hand, the request handler in the server will receive the request and call ServerSendReply to send the reply to the client. In this way, you can create a simple IPC (inter-process conmmunication) mechanism between clients and the server.
Example:
#define MAX_REQID 0x0030 |
Maximal request identifier.
#define MAX_SYS_REQID 0x0020 |
Maximal system reserved request identifier.
typedef int(* REQ_HANDLER)(int cli, int clifd, void *buff, size_t len) |
|
inlinestatic |
Sends a request to the server and wait reply.
If result is NULL or len_rslt is zero, the function will return immediately after sent the data to the server.
This function is a simplified version of ClientRequestEx, i.e. there is no extra data to be sent.
request | The pointer to REQUEST, which contains the data of the request. |
result | The buffer receives the reply. |
len_rslt | The lenght of the buffer. |
Definition at line 1145 of file minigui.h.
References ClientRequestEx(), GetSockFD2Server(), NULL, and ServerSendReply().
int ClientRequestEx | ( | const REQUEST * | request, |
const void * | ex_data, | ||
int | ex_data_len, | ||
void * | result, | ||
int | len_rslt | ||
) |
Sends a request to the server and wait reply.
If result is NULL or len_rslt is zero, the function will return immediately after sent the data to the server.
request | The pointer to REQUEST, which contains the data of the request. |
ex_data | The pointer to extra data to be sent to the server. |
ex_data_len | The length of the extra data in bytes. |
result | The buffer receives the reply. |
len_rslt | The lenght of the buffer. |
Referenced by ClientRequest().
EQ_HANDLER GUIAPI GetRequestHandler | ( | int | req_id | ) |
Gets the request handler by request identifier.
This function returns the request handler of the specified request identifier req_id.
req_id | The request identifier. |
int GUIAPI GetSockFD2Server | ( | void | ) |
Gets the file descriptor of the socket connected to the server.
This function returns the file descriptor of the socket connected to the server, i.e. mginit.
Referenced by ClientRequest().
BOOL GUIAPI RegisterRequestHandler | ( | int | req_id, |
REQ_HANDLER | your_handler | ||
) |
Registers a customize request handler.
This function registers a request handler to the server, i.e. mginit.
req_id | The identifier of the customized request. |
your_handler | The handler of the request. Being NULL to unregister the request handler. |
int GUIAPI ServerSendReply | ( | int | clifd, |
const void * | reply, | ||
int | len | ||
) |
Sends the reply to the client.
This function sends a replay pointed to by reply which is len bytes long to the client.
clifd | The fd connected to the client. |
reply | The buffer contains the reply data. |
len | The length of the reply data in bytes. |
Referenced by ClientRequest().