#include "../mc_list/list.h"
#include "../include/macros.h"
#include "df_request.x.h"
Go to the source code of this file.
Defines | |
#define | REQUEST(name, string, description) REQUEST_##name, |
#define | REQUEST(name, string, description) int request_handler_##name (struct mc_platform_s *global, void* data); |
Enumerations | |
enum | df_request_list_index_e |
enum | service_types_e { ZERO, MISC, INSERT, SOME, TYPES, HERE } |
Functions | |
REQUEST (SUBSCRIBE,"subscribe","Subscribe to a directory facilitator") REQUEST(REGISTER | |
Register services with the directory facilitator | REQUEST (DEREGISTER,"deregister","Deregisters mobile agent services from a directory facilitator.") REQUEST(SEARCH |
STRUCT (df_request_list_node, MUTEX_T *lock;COND_T *cond;const char *command;void *data;int data_size;) STRUCT(df_search_results | |
STRUCT (df_request_search, MUTEX_T *lock;COND_T *cond;char *search_string;df_search_results_p search_results;) STRUCT(df_node | |
STRUCT (df, struct mc_platform_s *mc_platform;MUTEX_T *lock;COND_T *cond;list_p service_list;list_p request_list;int num_entries;int waiting;MUTEX_T *waiting_lock;COND_T *waiting_cond;THREAD_T thread;) STRUCT(df_deregister | |
int | df_Add (struct df_s *df, struct df_node_s *node) |
int | df_AddRequest (struct df_s *df, struct df_request_list_node_s *node) |
int | df_Destroy (df_p df) |
df_p | df_Initialize (struct mc_platform_s *mc_platform) |
int | df_ProcessRequest (struct mc_platform_s *global) |
int | df_SearchForService (df_p df, const char *searchstring, char ***agent_names, char ***service_names, int **agent_ids, int *num_entries) |
void | df_Start (struct mc_platform_s *mc_platform) |
int | df_node_Destroy (df_node_p df_node) |
int | df_request_list_node_Destroy (df_request_list_node_p node) |
df_request_list_node_p | df_request_list_node_New (void) |
int | df_request_list_Destroy (list_t *df_request_list) |
df_request_search_p | df_request_search_New (void) |
int | df_request_search_Destroy (df_request_search_p node) |
void * | df_Thread (void *arg) |
Variables | |
char ** | agent_names |
char ** | service_names |
int * | agent_ids |
int | num_results |
MUTEX_T * | lock |
int | agent_id |
char * | agent_name |
int | num_services |
enum service_types_e | service_types |
char * | service_name |
#define REQUEST | ( | name, | |||
string, | |||||
description | ) | int request_handler_##name (struct mc_platform_s *global, void* data); |
enum service_types_e |
int df_Add | ( | struct df_s * | df, | |
struct df_node_s * | node | |||
) |
Definition at line 50 of file df.c.
References ListAdd(), ListWRLock(), ListWRUnlock(), and MC_SUCCESS.
Referenced by request_handler_REGISTER().
int df_AddRequest | ( | struct df_s * | df, | |
struct df_request_list_node_s * | node | |||
) |
Definition at line 62 of file df.c.
References ListAdd(), ListWRLock(), and ListWRUnlock().
Referenced by MC_DeregisterService(), MC_RegisterService(), and MC_SearchForService().
int df_Destroy | ( | df_p | df | ) |
Definition at line 75 of file df.c.
References COND_DESTROY, df_node_Destroy(), df_request_list_Destroy(), ListPop(), ListTerminate(), ListWRLock(), ListWRUnlock(), MC_SUCCESS, MUTEX_DESTROY, and MUTEX_LOCK.
Referenced by mc_platform_Destroy().
df_p df_Initialize | ( | struct mc_platform_s * | mc_platform | ) |
int df_node_Destroy | ( | df_node_p | df_node | ) |
Definition at line 372 of file df.c.
References MC_SUCCESS, and MUTEX_LOCK.
Referenced by df_Destroy().
int df_ProcessRequest | ( | struct mc_platform_s * | global | ) |
Definition at line 128 of file df.c.
References mc_platform_s::df, ListPop(), ListWRLock(), ListWRUnlock(), MC_ERR_EMPTY, and MC_ERR_INVALID.
Referenced by df_Thread().
int df_request_list_Destroy | ( | list_t * | df_request_list | ) |
Definition at line 320 of file df.c.
References df_request_list_node_Destroy(), ListPop(), ListTerminate(), ListWRLock(), ListWRUnlock(), and MC_SUCCESS.
Referenced by df_Destroy().
int df_request_list_node_Destroy | ( | df_request_list_node_p | node | ) |
Definition at line 291 of file df.c.
References COND_DESTROY, MC_SUCCESS, and MUTEX_DESTROY.
Referenced by df_request_list_Destroy(), and MC_SearchForService().
df_request_list_node_p df_request_list_node_New | ( | void | ) |
Definition at line 302 of file df.c.
References CHECK_NULL, COND_INIT, COND_T, MUTEX_INIT, and MUTEX_T.
Referenced by MC_DeregisterService(), MC_RegisterService(), and MC_SearchForService().
int df_request_search_Destroy | ( | df_request_search_p | node | ) |
Definition at line 359 of file df.c.
References COND_DESTROY, MC_SUCCESS, and MUTEX_DESTROY.
Referenced by MC_SearchForService().
df_request_search_p df_request_search_New | ( | void | ) |
Definition at line 344 of file df.c.
References CHECK_NULL, COND_INIT, COND_T, MUTEX_INIT, MUTEX_T, and search.
Referenced by MC_SearchForService().
int df_SearchForService | ( | df_p | df, | |
const char * | searchstring, | |||
char *** | agent_names, | |||
char *** | service_names, | |||
int ** | agent_ids, | |||
int * | num_entries | |||
) |
Definition at line 175 of file df.c.
References MC_ERR_NOT_FOUND, MC_SUCCESS, MUTEX_LOCK, MUTEX_UNLOCK, listNode_s::next, listNode_s::node_data, and num_services.
Referenced by request_handler_SEARCH().
void df_Start | ( | struct mc_platform_s * | mc_platform | ) |
void* df_Thread | ( | void * | arg | ) |
Definition at line 386 of file df.c.
References COND_BROADCAST, mc_platform_s::df, df_ProcessRequest(), ListRDLock(), ListRDUnlock(), ListRDWait(), MC_SUCCESS, MUTEX_LOCK, MUTEX_UNLOCK, mc_platform_s::quit, mc_platform_s::quit_lock, and THREAD_EXIT.
Referenced by df_Start().
Register services with the directory facilitator df_request_list_index_e::REQUEST | ( | DEREGISTER | , | |
"deregister" | , | |||
"Deregisters mobile agent services from a directory facilitator." | ||||
) |
df_request_list_index_e::REQUEST | ( | SUBSCRIBE | , | |
"subscribe" | , | |||
"Subscribe to a directory facilitator" | ||||
) |
STRUCT | ( | df | , | |
struct mc_platform_s *mc_platform;MUTEX_T *lock;COND_T *cond;list_p service_list;list_p request_list;int num_entries;int waiting;MUTEX_T *waiting_lock;COND_T *waiting_cond;THREAD_T thread; | ||||
) |
STRUCT | ( | df_request_search | , | |
MUTEX_T *lock;COND_T *cond;char *search_string;df_search_results_p search_results; | ||||
) |
STRUCT | ( | df_request_list_node | , | |
MUTEX_T *lock;COND_T *cond;const char *command;void *data;int data_size; | ||||
) |
char* agent_name |
char** agent_names |
int num_results |
int num_services |
Definition at line 93 of file df.h.
Referenced by df_SearchForService().
char* service_name |
char ** service_names |