• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

Android.bpD25-Apr-20251.1 KiB4138

README.mdD25-Apr-20251.4 KiB5847

msg_queue.ccD25-Apr-20253.6 KiB12073

msg_queue.hD25-Apr-20251.1 KiB3616

README.md

1# msg_queue
2
3This is the Cuttlefish message queue wrapper library, as one of the IPC options available.  Below are the example usages running in two separate processes.
4
5```
6#define MAX_MSG_SIZE 200
7#define NUM_MESSAGES 100
8
9typedef struct msg_buffer {
10	long mesg_type;
11	char mesg_text[MAX_MSG_SIZE];
12} msg_buffer;
13
14int example_send()
15{
16  const std::string message ="Test message"
17  auto msg_queue = SysVMessageQueue::Create("unique_queue_name", false);
18  if (msg_queue == NULL) {
19    LOG(FATAL) << "Create: failed to create" << "unique_queue_name";
20  }
21
22  struct msg_buffer msg;
23  msg.mesg_type = 1;
24  strcpy(msg.mesg_text, message.c_str());
25  int rc = msg_queue->Send(&msg, message.length() + 1, true);
26  if (rc == -1) {
27    LOG(FATAL) << "Send: failed to send message to msg_queue";
28  }
29}
30```
31
32```
33#define MAX_MSG_SIZE 200
34
35typedef struct msg_buffer {
36	long mesg_type;
37	char mesg_text[MAX_MSG_SIZE];
38} msg_buffer;
39
40int example_receive()
41{
42  auto msg_queue = SysVMessageQueue::Create("unique_queue_name");
43  if (msg_queue == NULL) {
44    LOG(FATAL) << "create: failed to create" << "unique_queue_name";
45  }
46
47  struct msg_buffer msg = {0, {0}};
48  int rc = msg_queue->Receive(&msg, MAX_MSG_SIZE, 1, true);
49  if (rc == -1) {
50	LOG(FATAL) << "receive: failed to receive any messages";
51  }
52
53  std::string text(msg.mesg_text);
54  LOG(INFO) << "Metrics host received: " << text;
55	return 0;
56}
57```
58