source: observatorio/simulacion/ModuloDinamico/simulation_attributes_macros.H

simulacion
Last change on this file was 3522468, checked in by Alejandro <amujica@…>, 10 years ago

Modulo python para construccion de redes, Avance simulador

  • Property mode set to 100644
File size: 4.0 KB
Line 
1/*
2  Copyright (C) 2014
3  Alejandro Mujica (amujica@cenditel.gob.ve)
4  José Ruiz (jruiz@cenditel.gob.ve)
5  Julie Vera (jvera@cenditel.gob.ve)
6 
7  CENDITEL Fundación Centro Nacional de Desarrollo e Investigación en
8  Tecnologías Libres
9 
10  Este programa es software libre; Usted puede usarlo bajo los términos de la
11  licencia de software GPL versión 2.0 de la Free Software Foundation.
12 
13  Este programa se distribuye con la esperanza de que sea útil, pero SIN
14  NINGUNA GARANTÍA; tampoco las implícitas garantías de MERCANTILIDAD o
15  ADECUACIÓN A UN PROPÓSITO PARTICULAR.
16  Consulte la licencia GPL para más detalles. Usted debe recibir una copia
17  de la GPL junto con este programa; si no, escriba a la Free Software
18  Foundation Inc. 51 Franklin Street,5 Piso, Boston, MA 02110-1301, USA.
19*/
20
21/*
22  Autor:             Alejandro J. Mujica
23  Fecha de creación: 30/09/2014
24  Este archivo contiene contiene un conjunto de macros para definir la
25  declaración de una lista de atributos de simulación, inicializaciones, y
26  métodos.
27*/
28
29# ifndef SIMULATION_ATTRIBUTES_MACROS_H
30# define SIMULATION_ATTRIBUTES_MACROS_H
31
32# define DECLARE_SIMULATION_ATTRIBUTES(Simulation_Attributes)                  \
33  List<Simulation_Attributes> simulation_attributes_list;
34
35# define DEFINE_SIMULATION_ATTRIBUTES_METHODS(Simulation_Attributes)           \
36Simulation_Attributes &                                                        \
37add_simulation_attributes(const Simulation_Attributes & simulation_attributes) \
38{                                                                              \
39  return simulation_attributes_list.append(simulation_attributes);             \
40}                                                                              \
41                                                                               \
42Simulation_Attributes & get_simulation_attributes_at(const size_t & i)         \
43{                                                                              \
44  return simulation_attributes_list[i];                                        \
45}                                                                              \
46                                                                               \
47template <class Op>                                                            \
48void for_each_simulation_attributes(Op & op)                                   \
49{                                                                              \
50  List<Simulation_Attributes>::Iterator it(simulation_attributes_list);        \
51                                                                               \
52  for ( ; it.has_current(); it.next())                                         \
53    {                                                                          \
54      Simulation_Attributes & simulation_attributes = it.get_current();        \
55      op(simulation_attributes);                                               \
56    }                                                                          \
57}                                                                              \
58                                                                               \
59template <class Op>                                                            \
60void for_each_simulation_attributes(Op && op)                                  \
61{                                                                              \
62  for_each_simulation_attributes<Op>(op);                                      \
63}
64
65# define INIT_SIMULATION_ATTRIBUTES                                            \
66  simulation_attributes_list()
67
68# define INIT_COPY_SIMULATION_ATTRIBUTES(src)                                  \
69  simulation_attributes_list(src.simulation_attributes_list)
70
71# define COPY_SIMULATION_ATTRIBUTES(src)                                       \
72  simulation_attributes_list = src.simulation_attributes_list;
73
74# define SWAP_SIMULATION_ATTRIBUTES(src)                                       \
75  simulation_attributes_list.swap(src.simulation_attributes_list);
76
77# endif
78
Note: See TracBrowser for help on using the repository browser.