My Project
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
Classes | Enumerations | Functions
thread_message.h File Reference

Messages to be delivered to dedos_threads. More...

#include "runtime_communication.h"
#include "inter_runtime_messages.h"
#include "rt_controller_messages.h"

Go to the source code of this file.

Classes

struct  thread_msg
 A message to be delivered to a dedos_thread. More...
 
struct  send_to_peer_msg
 For delivery to the output monitor thread, a message to be sent to a peer runtime. More...
 
struct  send_to_ctrl_msg
 For delivery to output monitor thread, a message to be sent to the controller. More...
 

Enumerations

enum  thread_msg_type {
  UNKNOWN_THREAD_MSG = 0, CONNECT_TO_RUNTIME = 13, SEND_TO_PEER = 1000, SEND_TO_CTRL = 1001,
  CREATE_MSU = 2001, DELETE_MSU = 2002, MSU_ROUTE = 3001
}
 All messages that can be received by output thread or workers. More...
 

Functions

struct thread_msginit_send_thread_msg (unsigned int runtime_id, unsigned int target_id, size_t data_len, void *data)
 Initializes a send_to_peer message (SEND_TO_PEER) More...
 
void destroy_thread_msg (struct thread_msg *msg)
 Frees a thread message. More...
 
struct thread_msgconstruct_thread_msg (enum thread_msg_type type, ssize_t data_size, void *data)
 Allocates and initializes a thread message with the provided options. More...
 
int enqueue_thread_msg (struct thread_msg *msg, struct msg_queue *queue)
 Enqueues a dedos_msg with a thread_msg as the payload to the appropriate queue. More...
 
struct thread_msgdequeue_thread_msg (struct msg_queue *queue)
 Dequeues a thread_msg from the message queue. More...
 

Detailed Description

Messages to be delivered to dedos_threads.

Definition in file thread_message.h.

Enumeration Type Documentation

All messages that can be received by output thread or workers.

Enumerator
UNKNOWN_THREAD_MSG 

Kept unknown at 0 to catch mis-labeled messages.

CONNECT_TO_RUNTIME 

payload: ctrl_add_runtime_msg (ctrl_runtime_messages.h)

SEND_TO_PEER 

payload: send_to_runtime_msg (below)

SEND_TO_CTRL 

payload: send_to_ctrl_msg (below)

CREATE_MSU 

ctrl_create_msu_msg (ctrl_runtime_messages.h)

DELETE_MSU 

ctrl_delete_msu_msg (ctrl_runtime_messages.h)

MSU_ROUTE 

ctrl_msu_route_msg (ctrl_runtime_messages.h)

Definition at line 35 of file thread_message.h.

Function Documentation

struct thread_msg* construct_thread_msg ( enum thread_msg_type  type,
ssize_t  data_size,
void *  data 
)

Allocates and initializes a thread message with the provided options.

Definition at line 66 of file thread_message.c.

struct thread_msg* dequeue_thread_msg ( struct msg_queue queue)

Dequeues a thread_msg from the message queue.

Returns
The dequeued message or NULL if error

Definition at line 48 of file thread_message.c.

void destroy_thread_msg ( struct thread_msg msg)

Frees a thread message.

Definition at line 81 of file thread_message.c.

int enqueue_thread_msg ( struct thread_msg msg,
struct msg_queue queue 
)

Enqueues a dedos_msg with a thread_msg as the payload to the appropriate queue.

Definition at line 29 of file thread_message.c.

struct thread_msg* init_send_thread_msg ( unsigned int  runtime_id,
unsigned int  target_id,
size_t  data_len,
void *  data 
)

Initializes a send_to_peer message (SEND_TO_PEER)

Parameters
runtime_idThe runtime to deliver the message to
target_idThe remote target (either thread ID or MSU ID)
data_lensize of provided data
Returns
Newly allocated thread message on success, NULL on error

Definition at line 87 of file thread_message.c.