Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Estructura Aleph::Sim_Agent_Graph< Arc_Agents, Node_Agents, Agent >
+ Diagrama de herencias de Aleph::Sim_Agent_Graph< Arc_Agents, Node_Agents, Agent >
+ Diagrama de colaboración para Aleph::Sim_Agent_Graph< Arc_Agents, Node_Agents, Agent >:

Tipos públicos

typedef Concurrent_Graph< Node,
Arc > 
Parent_Graph
 
typedef Node Node_Class
 
typedef Arc Arc_Class
 
typedef Node::Node_Type Node_Type
 
typedef Arc::Arc_Type Arc_Type
 
typedef Agent::Agent_Type Agent_Type
 
- Tipos públicos heredados desde Aleph::Concurrent_Graph< Node, Arc >
typedef __GT< Lock_Object< Arc >
, Lock_Object< __Arc > > 
GT
 
typedef Node::Node Node
 
typedef Node::Arc Arc
 
typedef Node::Node_Type Node_Type
 El tipo de nodo concurrente.
 
typedef Node::Arc_Type Arc_Type
 El tipo de arco concurrente.
 

Métodos públicos

const size_t & get_num_agents () const
 
Node * get_agent_node_location (Agent *agent)
 
void set_agent_node_location (Agent *agent, Node *node)
 
Arc * get_agent_arc_location (Agent *agent)
 
void set_agent_arc_location (Agent *agent, Arc *arc)
 
bool is_agent_in_node (Agent *agent)
 
Agentget_first_agent ()
 
void remove_agent (Agent *agent)
 
void clear_agent_list ()
 
 Sim_Agent_Graph (const size_t &num_threads)
 
Agentcreate_agent_in_node (Agent_Type agent_info, void(*funcptr)(void *, void *), Node *node, long activation_time)
 
Agentcreate_agent_in_arc (Agent_Type agent_info, void(*funcptr)(void *, void *), Arc *arc, long activation_time)
 
template<class Equal >
Agentsearch_agent (const Agent_Type &agent)
 
Agentsearch_agent (const Agent_Type &agent)
 
void start_graph ()
 
void stop_graph ()
 
int get_status ()
 
void set_status (int value)
 
void suspend_graph ()
 
void resume_graph ()
 
void cancel_event (Sim_Event *event)
 
void schedule_event (Sim_Event *event)
 
void set_update_callback (Update_Callback fnct)
 
long get_actual_time ()
 
void set_callback_rate (long rate)
 
long get_callback_rate ()
 
void run_static ()
 
- Métodos públicos heredados desde Aleph::Concurrent_Graph< Node, Arc >
pthread_mutex_t * get_mutex (int i)
 
pthread_mutex_t * allocate_mutex ()
 
 Concurrent_Graph (const size_t &n_mut=1)
 Instancia un grafo concurrente vacío.
 
 Concurrent_Graph (const Concurrent_Graph &g)
 Instancia un grafo concurrente copia de otro grafo concurrente.
 
void set_num_mutexes (const size_t &n)
 
void distribute_mutexes_randomly ()
 
void distribute_mutexes_uniformly ()
 
size_t get_num_nodes ()
 Retorna el número de nodos que tiene el grafo concurrente.
 
size_t get_num_arcs ()
 Retorna el número de arcos que tiene el grafo concurrente.
 
size_t get_num_mutexes ()
 
Node * search_node (const Node_Type &node_info)
 Busca un nodo según su información contenida.
 
Node * insert_node (Node *node)
 Inserta un nodo ya creado en un grafo.
 
Node * insert_node (const Node_Type &node_info)
 Crea e inserta un nuevo nodo con información node_info.
 
Node * get_first_node ()
 Retorna el primer nodo de un grafo; no hay un orden determinado.
 
Arc * get_first_arc ()
 Retorna el primer arco de un grafo.
 
void verify_graphs (Concurrent_Graph &g)
 
void remove_node (Node *node)
 Elimina un nodo de un grafo (junto con todos sus arcos adyacentes).
 
void sort_arcs ()
 ordena los arcos de un grafo concurrente según criterio Compare.
 
Arc * insert_arc (Node *src_node, Node *tgt_node, const Arc_Type &arc_info)
 Crea un arco en un grafo concurrente.
 
Arc * insert_arc (Node *src_node, Node *tgt_node)
 Crea un arco en un grafo concurrente.
 
void remove_arc (Arc *arc)
 Elimina un arco en un grafo concurrente.
 
Arc * search_arc (Node *src_node, Node *tgt_node)
 Busca un arco que conecte a dos nodos.
 
Arc * search_arc (const Arc_Type &arc_info)
 Busca un arco con información arc_info.
 
bool arc_belong_to_graph (Arc *arc)
 Retorna true si el arco arc pertenece al grafo.
 

Métodos públicos estáticos

static void * run (void *cookie)
 

Otros miembros heredados

- Métodos protegidos heredados desde Aleph::Concurrent_Graph< Node, Arc >
void init_mutexes ()
 
void uninit_mutexes ()
 
- Atributos protegidos heredados desde Aleph::Concurrent_Graph< Node, Arc >
pthread_mutex_t mutex
 
size_t num_mutexes
 
DynArray< pthread_mutex_t > mutexes
 

Documentación del constructor y destructor

template<typename Arc_Agents , typename Node_Agents , typename Agent >
Aleph::Sim_Agent_Graph< Arc_Agents, Node_Agents, Agent >::Sim_Agent_Graph ( const size_t &  num_threads)
inline

Funciones para el Grafo

Documentación de las funciones miembro

template<typename Arc_Agents , typename Node_Agents , typename Agent >
const size_t& Aleph::Sim_Agent_Graph< Arc_Agents, Node_Agents, Agent >::get_num_agents ( ) const
inline

Funciones de los agentes


La documentación para esta estructura fue generada a partir del siguiente fichero:

Leandro Rabindranath León