2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
10 # This software is governed by the CeCILL-B license under French law and
11 # abiding by the rules of distribution of free software. You can use,
12 # modify and/ or redistribute the software under the terms of the CeCILL-B
13 # license as circulated by CEA, CNRS and INRIA at the following URL
14 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 # or in the file LICENSE.txt.
17 # As a counterpart to the access to the source code and rights to copy,
18 # modify and redistribute granted by the license, users are provided only
19 # with a limited warranty and the software's author, the holder of the
20 # economic rights, and the successive licensors have only limited
23 # The fact that you are presently reading this means that you have had
24 # knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ */
29 #ifndef __SOMETHING_H_INCLUDED__
30 #define __SOMETHING_H_INCLUDED__
60 //====== LIFECYCLE ========
62 SomeThing(std::string name);
69 //====== OPERATIONS =======
72 * Add a new instant to the thing
73 * @param instant: new instant
76 bool addInstant(Instant* instant);
79 //====== INQUIRY =========
81 * Get the thing stored
88 * Get the name of the thing
92 std::string getName();
95 * Get all the instants
99 std::vector<Instant*>* getInstants();
102 * Get the instant that's in the index given
103 * @param indexInstant: index of the instant that they want
104 * @return instants[instantIndex]
107 Instant* getInstant(int indexInstant);
110 * Get the number of instants that the
112 * @return instants.size()
115 int getNumberInstants();
118 * if this is in the instant given
119 * @param instant: instant to verified if this has it
120 * @return 0<=i<numberOfInstants if this has the instant, -1 otherwise
123 int hasInstant(Instant* instant);
125 //====== ACCESS ==========
131 void setThing(U thing);
134 * Set the name of the thing
138 void setName(std::string name);
141 * Set the instants of the thing
145 void setInstants(std::vector<Instant*> instants);
148 * Remove an instant from the thing
149 * @param indexInstant: index of the instant to be removed
150 * @return true if succesful , false otherwise
153 bool removeInstant(int indexInstant);
156 * Remove an instant from the thing
157 * @param instant: instant to be deleted
158 * @return true if succesful , false otherwise
161 bool removeInstant(Instant* instant);
166 //======= ATTRIBUTES=======
168 * name of the something
170 * has to be different from the
171 * other existing somethings in the program
174 std::string nameThing;
176 * the thing that we are handling
177 * it could be any object
181 * instants that the thing
184 std::vector<Instant*> instantsVector;
187 //include the implementation of the template
188 #include "SomeThing_Txx.h"