#include "agent_datastate.h"
#include "agent_task.h"
#include "libmc.h"
#include "message.h"
#include "macros.h"
Go to the source code of this file.
Data Structures | |
struct | agent_s |
Typedefs | |
typedef struct agent_s | agent_t |
typedef agent_t * | MCAgent_t |
typedef agent_t * | agent_p |
Functions | |
int | agent_AddPersistentVariable (agent_p agent, int task_num, const char *var_name) |
agent_p | agent_New (void) |
agent_p | agent_NewBinary (struct mc_platform_s *mc_platform) |
agent_p | agent_Copy (const agent_p agent) |
int | agent_Destroy (agent_p agent) |
agent_p | agent_Initialize (struct mc_platform_s *mc_platform, message_p message, int id) |
void | agent_RunChScript (MCAgent_t agent, struct mc_platform_s *global) |
void * | agent_RunChScriptThread (void *agent) |
void * | agent_ChScriptInitVar (ChInterp_t *interp) |
int | agent_Print (agent_t *agent) |
int | agent_CmpName (const void *key, void *element) |
int | agent_CmpID (int *id, agent_t *agent) |
int agent_AddPersistentVariable | ( | agent_p | agent, | |
int | task_num, | |||
const char * | var_name | |||
) |
Definition at line 53 of file agent.c.
References agent_s::agent_interp, agent_task_s::agent_variable_list, interpreter_variable_data_s::array_dim, interpreter_variable_data_s::array_extent, CH_DATATYPE_SIZE, CHECK_NULL, interpreter_variable_data_s::data, interpreter_variable_data_s::data_type, agent_s::datastate, interpreter_variable_data_CmpName(), interpreter_variable_data_Destroy(), ListAdd(), ListDeleteCB(), ListWRLock(), ListWRUnlock(), MC_ERR, agent_s::name, interpreter_variable_data_s::name, interpreter_variable_data_s::size, strdup, agent_datastate_s::task_progress, and agent_datastate_s::tasks.
void* agent_ChScriptInitVar | ( | ChInterp_t * | interp | ) |
Definition at line 554 of file agent.c.
References MC_AclAddReceiver_chdl(), MC_AclAddReplyTo_chdl(), MC_AclDestroy_chdl(), MC_AclGetContent_chdl(), MC_AclGetConversationID_chdl(), MC_AclGetPerformative_chdl(), MC_AclGetProtocol_chdl(), MC_AclGetSender_chdl(), MC_AclNew_chdl(), MC_AclPost_chdl(), MC_AclReply_chdl(), MC_AclRetrieve_chdl(), MC_AclSend_chdl(), MC_AclSetContent_chdl(), MC_AclSetConversationID_chdl(), MC_AclSetPerformative_chdl(), MC_AclSetProtocol_chdl(), MC_AclSetSender_chdl(), MC_AclWaitRetrieve_chdl(), MC_AddAgent_chdl(), MC_AgentAddTask_chdl(), MC_AgentAttachFile_chdl(), MC_AgentListFiles_chdl(), MC_AgentRetrieveFile_chdl(), MC_AgentVariableRetrieve_chdl(), MC_AgentVariableSave_chdl(), MC_Barrier_chdl(), MC_BarrierDelete_chdl(), MC_BarrierInit_chdl(), MC_CallAgentFunc_chdl(), MC_ComposeAgent_chdl(), MC_ComposeAgentFromFile_chdl(), MC_ComposeAgentFromFileWithWorkgroup_chdl(), MC_ComposeAgentWithWorkgroup_chdl(), MC_CondBroadcast_chdl(), MC_CondReset_chdl(), MC_CondSignal_chdl(), MC_CondWait_chdl(), MC_DeleteAgent_chdl(), MC_DeleteAgentWG_chdl(), MC_DeregisterService_chdl(), MC_DestroyServiceSearchResult_chdl(), MC_End_chdl(), MC_FindAgentByID_chdl(), MC_FindAgentByName_chdl(), MC_GetAgentID_chdl(), MC_GetAgentName_chdl(), MC_GetAgentStatus_chdl(), MC_GetAgentXMLString_chdl(), MC_GetTimeOfDay_chdl(), MC_HaltAgency_chdl(), MC_MigrateAgent_chdl(), MC_MutexLock_chdl(), MC_MutexUnlock_chdl(), MC_PrintAgentCode_chdl(), MC_RegisterService_chdl(), MC_ResumeAgency_chdl(), MC_RetrieveAgent_chdl(), MC_RetrieveAgentCode_chdl(), MC_SaveData_chdl(), MC_SearchForService_chdl(), MC_SemaphorePost_chdl(), MC_SemaphoreWait_chdl(), MC_SendAgentMigrationMessage_chdl(), MC_SendAgentMigrationMessageFile_chdl(), MC_SendSteerCommand_chdl(), MC_SetAgentStatus_chdl(), MC_SetDefaultAgentStatus_chdl(), MC_SyncDelete_chdl(), MC_SyncInit_chdl(), MC_TerminateAgent_chdl(), and MC_TerminateAgentWG_chdl().
Referenced by interpreter_queue_CreateRetrieve(), and mc_platform_Initialize().
int agent_CmpID | ( | int * | id, | |
agent_t * | agent | |||
) |
Definition at line 1377 of file agent.c.
References agent_s::id, agent_s::lock, MUTEX_LOCK, and MUTEX_UNLOCK.
Referenced by MC_FindAgentByID().
int agent_CmpName | ( | const void * | key, | |
void * | element | |||
) |
Definition at line 1366 of file agent.c.
References agent_s::lock, MUTEX_LOCK, MUTEX_UNLOCK, and agent_s::name.
Referenced by acc_connection_Thread(), acc_MessageHandlerThread(), MC_DeleteAgent(), MC_DeleteAgentWG(), and MC_FindAgentByName().
Definition at line 140 of file agent.c.
References agent_datastate_Copy(), agent_s::agent_interp, agent_New(), agent_s::agent_persistent, agent_s::agent_status, agent_s::agent_status_cond, agent_s::agent_status_lock, agent_s::agent_type, agent_s::arrival_time, COND_INIT, COND_NEW, agent_s::datastate, agent_s::home, agent_s::home_port, agent_s::id, ListInitialize(), agent_s::lock, agent_s::mailbox, MUTEX_INIT, MUTEX_LOCK, MUTEX_NEW, MUTEX_T, agent_s::name, agent_s::orphan, agent_s::owner, agent_s::return_data, and agent_s::run_lock.
Referenced by MC_CopyAgent().
int agent_Destroy | ( | agent_p | agent | ) |
Definition at line 455 of file agent.c.
References agent_s::agent_address, agent_datastate_Destroy(), agent_s::agent_interp, agent_s::agent_status, agent_s::agent_status_cond, agent_s::agent_status_lock, COND_DESTROY, agent_s::datastate, fipa_acl_message_Destroy(), agent_s::home, mc_platform_s::interpreter_queue, ListAdd(), ListClearCB(), ListTerminate(), ListWRLock(), ListWRUnlock(), agent_s::lock, agent_s::mailbox, MC_AGENT_NEUTRAL, agent_s::mc_platform, MC_SUCCESS, MUTEX_DESTROY, MUTEX_LOCK, MUTEX_UNLOCK, agent_s::name, agent_s::owner, agent_s::run_lock, agent_s::sender, and agent_s::wg_code.
Referenced by agent_Initialize(), handler_FLUSH_AGENTS(), MC_DeleteAgentWG(), and mc_platform_Destroy().
agent_p agent_Initialize | ( | struct mc_platform_s * | mc_platform, | |
message_p | message, | |||
int | id | |||
) |
Definition at line 318 of file agent.c.
References agent_s::agent_address, agent_datastate_New(), agent_Destroy(), agent_s::agent_pipe_active, agent_s::agent_pipe_ready_to_read, agent_s::agent_ready_to_send, agent_s::agent_script_ready, agent_s::agent_status, agent_s::agent_status_cond, agent_s::agent_status_lock, agent_s::agent_thread_id, agent_s::agent_type, message_s::agent_xml_flag, agent_xml_parse(), agent_s::arrival_time, COND_BROADCAST, COND_DESTROY, COND_INIT, COND_NEW, agent_s::datastate, mc_platform_s::default_agentstatus, mc_platform_s::err, agent_s::home, mc_platform_s::hostname, agent_s::id, ListInitialize(), agent_s::lock, agent_s::mailbox, MC_ERR_PARSE, agent_s::mc_platform, MC_REMOTE_AGENT, MC_RETURN_AGENT, MC_WAIT_CH, message_s::message_type, MOBILE_AGENT, MUTEX_DESTROY, MUTEX_INIT, MUTEX_LOCK, MUTEX_NEW, MUTEX_T, MUTEX_UNLOCK, agent_s::orphan, mc_platform_s::port, RETURN_MSG, agent_s::run_lock, agent_s::sender, agent_datastate_s::xml_agent_root, message_s::xml_payload, message_s::xml_root, and agent_datastate_s::xml_root.
Referenced by acc_MessageHandlerThread(), MC_SendAgent(), MC_SendAgentFile(), and MC_SendAgentMigrationMessageFile().
agent_p agent_New | ( | void | ) |
Definition at line 207 of file agent.c.
References agent_s::agent_status_cond, agent_s::agent_status_lock, COND_INIT, COND_NEW, ListInitialize(), agent_s::lock, agent_s::mailbox, MUTEX_INIT, MUTEX_NEW, and agent_s::run_lock.
Referenced by agent_Copy(), and MC_ComposeAgentWithWorkgroup().
agent_p agent_NewBinary | ( | struct mc_platform_s * | mc_platform | ) |
Definition at line 237 of file agent.c.
References agent_s::agent_address, agent_s::agent_pipe_active, agent_s::agent_pipe_ready_to_read, agent_s::agent_ready_to_send, agent_s::agent_script_ready, agent_s::agent_status, agent_s::agent_status_cond, agent_s::agent_status_lock, agent_s::agent_thread_id, agent_s::arrival_time, agent_s::binary, COND_BROADCAST, COND_INIT, COND_NEW, agent_s::home, mc_platform_s::hostname, agent_s::id, ListInitialize(), agent_s::lock, agent_s::mailbox, MC_AGENT_ACTIVE, agent_s::mc_platform, MUTEX_INIT, MUTEX_LOCK, MUTEX_NEW, MUTEX_T, MUTEX_UNLOCK, agent_s::orphan, mc_platform_s::port, agent_s::run_lock, and agent_s::sender.
Referenced by MC_AddStationaryAgent().
int agent_Print | ( | agent_t * | agent | ) |
Definition at line 1356 of file agent.c.
References agent_s::agent_status, agent_s::agent_status_lock, agent_s::connect_id, agent_s::id, MUTEX_LOCK, and MUTEX_UNLOCK.
Referenced by ams_Print(), and handler_PRINTLIST_AGENTS().
void agent_RunChScript | ( | MCAgent_t | agent, | |
struct mc_platform_s * | global | |||
) |
void* agent_RunChScriptThread | ( | void * | agent | ) |
Definition at line 1049 of file agent.c.
References mc_platform_s::agency, agent_s::agent_interp, agency_s::agentInitCallback, agency_s::agentInitUserData, mc_platform_s::ams, COND_SIGNAL, COND_WAIT, agent_s::datastate, agent_s::id, mc_platform_s::interp_options, mc_platform_s::interpreter_queue, interpreter_queue_CreateRetrieve(), interpreter_variable_data_Destroy(), interpreter_variable_data_Initialize(), interpreter_variable_data_InitializeFromAgent(), ListAdd(), ListClearCB(), ListWRLock(), ListWRUnlock(), MC_AGENT_NEUTRAL, MC_EXEC_AGENT, agent_s::mc_platform, MC_RETURN_AGENT, mc_platform_s::MC_signal, mc_platform_s::MC_signal_cond, mc_platform_s::MC_signal_lock, MC_WAIT_FINISHED, MC_WAIT_MESSGSEND, MUTEX_LOCK, MUTEX_UNLOCK, agent_s::name, SIGNAL, agent_datastate_s::task_progress, and WARN.
Referenced by agent_RunChScript().