|
| Ant_Graph (const size_t &num_threads=1) |
|
Ant * | insert_ant (Ant *p) |
|
size_t | get_num_agents () const |
| Retorna el número total de agentes del grafo.
|
|
size_t | get_num_threads () const |
| Retorna el número de threads que ejecutan a los agentes.
|
|
Agent * | get_first_agent () |
|
void | remove_agent (Agent *agent) |
|
void | start_graph (const bool block_caller=true) |
|
void | stop_graph () |
|
void | suspend_graph () |
|
void | resume_graph () |
|
void | clear_agent_list () |
|
const long & | get_num_agents_ready () const |
|
const long & | get_num_agents_suspended () const |
|
void | suspend_agent (Agent *agent) |
|
void | resume_agent (Agent *agent) |
|
| Agent_Graph (const size_t &__num_threads=3, const size_t &num_mutexes=4) |
|
| Agent_Graph (const Agent_Graph &g) |
|
void | set_num_threads (const size_t &__num_threads) |
|
Agent * | insert_agent_in_node (Agent *agent, Node *p, const bool suspended=false) |
|
Agent * | insert_agent_in_arc (Agent *agent, Arc *a, const bool suspended=false) |
|
Agent * | create_agent_in_node (const Agent_Type &agent_data, Node *node, long(*process_node)(void *agent, void *graph, void *src, void *&arc)=NULL, long(*process_arc)(void *agent, void *graph, void *arc)=NULL, const bool suspended=false) |
|
Agent * | create_agent_in_arc (const Agent_Type &agent_data, Arc *arc, long(*process_node)(void *agent, void *graph, void *src, void *&arc)=NULL, long(*process_arc)(void *agent, void *graph, void *arc)=NULL, const bool &suspended=false) |
|
Agent * | search_agent (const Agent_Type &agent_data) |
|
Agent * | search_agent (const Agent_Type &agent) |
|
int | get_status () |
|
void | set_time_callback (Time_Callback __time_callback, const int &sec=10, const long &nanosec=0) |
|
void | cancel_time_callback () |
|
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.
|
|
La documentación para esta estructura fue generada a partir del siguiente fichero: