#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 |
1.6.3