MGE General C Library - API Documentation  v1.8.4
Library of general C functions.
mge-message.h
Go to the documentation of this file.
1 
16 #ifndef MGE_MESSAGE_H
17 #define MGE_MESSAGE_H
18 
19 #include <stdbool.h>
20 #include <sys/types.h>
21 
22 #include <libmgec/mge-buffer.h>
24 
26 
30 struct mgemessage {
31  char *message;
32  size_t size;
33  size_t next_free;
34  bool complete;
35  char terminator;
36  char separator;
37  int argc;
38  char **argv;
39 };
40 
44 #define MGEMESSAGE_INIT(a, b) \
45  { \
46  .message = NULL, .size = 0, .next_free = 0, .complete = false, \
47  .terminator = a, .separator = b, .argc = 0, .argv = NULL \
48  }
49 
50 struct mgemessage *pull_msg(struct mgebuffer *buf, struct mgemessage *msg);
51 
52 void clear_msg(struct mgemessage *msg, const char terminator,
53  const char separator);
54 
55 void print_msg(struct mgemessage *msg);
56 
57 void print_def_msg_values(void);
58 
60 
61 #endif /* ndef MGE_MESSAGE_H */
A buffer object.
Definition: mge-buffer.h:28
char * message
The message buffer.
Definition: mge-message.h:31
char separator
Message element delimitter.
Definition: mge-message.h:36
void print_def_msg_values(void)
Print default values to stdout, for debugging.
Definition: message.c:241
size_t size
Size of message buffer.
Definition: mge-message.h:32
size_t next_free
Next free message location.
Definition: mge-message.h:33
bool complete
Is message a complete message.
Definition: mge-message.h:34
Header file to ease portability.
char terminator
Message delimmitter.
Definition: mge-message.h:35
char ** argv
Message arguments.
Definition: mge-message.h:38
Message object.
Definition: mge-message.h:30
#define END_C_DECLS
Use END_C_DECLS at the end of C declarations.
Definition: mge-portability.h:34
void clear_msg(struct mgemessage *msg, const char terminator, const char separator)
Clear message struct.
Definition: message.c:204
struct mgemessage * pull_msg(struct mgebuffer *buf, struct mgemessage *msg)
Pull a message from a buffer object.
Definition: message.c:51
Header file for buffer processing.
#define BEGIN_C_DECLS
BEGIN_C_DECLS should be used at the beginning of declarations so that C++ compilers don&#39;t mangle thei...
Definition: mge-portability.h:30
void print_msg(struct mgemessage *msg)
Print a message struct.
Definition: message.c:222
int argc
Number of arguments to the message.
Definition: mge-message.h:37