creaContours_lib
ComposedCommand.cxx
Go to the documentation of this file.
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 # pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 # This software is governed by the CeCILL-B license under French law and
10 # abiding by the rules of distribution of free software. You can use,
11 # modify and/ or redistribute the software under the terms of the CeCILL-B
12 # license as circulated by CEA, CNRS and INRIA at the following URL
13 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 # or in the file LICENSE.txt.
15 #
16 # As a counterpart to the access to the source code and rights to copy,
17 # modify and redistribute granted by the license, users are provided only
18 # with a limited warranty and the software's author, the holder of the
19 # economic rights, and the successive licensors have only limited
20 # liability.
21 #
22 # The fact that you are presently reading this means that you have had
23 # knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25 
26 
27 //----------------------------------------------------------------------------------------------------------------
28 // Class definition include
29 //----------------------------------------------------------------------------------------------------------------
30 #include "ComposedCommand.h"
31 
32 //----------------------------------------------------------------------------------------------------------------
33 // Class implementation
34 //----------------------------------------------------------------------------------------------------------------
37 //------------------------------------------------------------------------------------------------------------
38 // Constructors & Destructors
39 //------------------------------------------------------------------------------------------------------------
40 
41 
43  {
44 
45  }
46 
48  {
49  clear();
50  }
51 
52 //------------------------------------------------------------------------------------------------------------
53 // Methods
54 //------------------------------------------------------------------------------------------------------------
55 
56  /*
57  * Adds a command to the list of command
58  * @param nwCommand Is the new command to include
59  */
61  {
62  internalCommands.push_back(nwCommand);
63  }
64 
65  /*
66  * Virtual method implentation that includes the commands list into the given queue for execution
67  * @param executionQueue Is the queue in which is included the command
68  */
69  void ComposedCommand :: includeToExecute(std::deque<CommandObject* > &executionQueue)
70  {
71  std::deque<CommandObject *>::iterator actualCommandIter = internalCommands.end();
72  while( actualCommandIter != internalCommands.begin())
73  {
74  (*actualCommandIter)->includeToExecute(executionQueue);
75  actualCommandIter--;
76  }
77  }
78 
79  /*
80  * Virtual method implementation that returns 1 as the ExecutableCommand is just one command effective
81  * @return The value of commands that represents this
82  */
84  {
85  int count = 0;
86  int i =0;
87  while( i<internalCommands.size() )
88  {
89  count += internalCommands[i]->count();
90  i++;
91  }
92  return count;
93  }
94 
95  /*
96  * Virtual method implentation that that clears the commands inside the composed command calling each one to clean it self
97  */
99  {
100  while( internalCommands.size()>0 )
101  {
102  internalCommands.back()->clear();
103  internalCommands.pop_back();
104  }
105  internalCommands.clear();
106  }
107 
108