-// ANNA - Anna is Not Nothingness Anymore
-//
-// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
-//
-// http://redmine.teslayout.com/projects/anna-suite
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of the copyright holder nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Authors: eduardo.ramos.testillano@gmail.com
-// cisco.tierra@gmail.com
+// ANNA - Anna is Not Nothingness Anymore //
+// //
+// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
+// //
+// See project site at http://redmine.teslayout.com/projects/anna-suite //
+// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
#ifndef anna_core_util_Recycler_hpp
Devuelve el número de elementos realmente utilizados hasta ahora.
@return El número de elementos realmente utilizados hasta ahora.
*/
- int getSize() const throw() { return a_size; }
+ int getSize() const { return a_size; }
/**
Devuelve el número de elementos realmente utilizados hasta ahora.
@return El número de elementos realmente utilizados hasta ahora.
*/
- int size() const throw() { return a_size; }
+ int size() const { return a_size; }
/**
Devuelve un puntero de tipo T. Solo crearia una nueva instancia de la clase T si al invocar a este
@return Un puntero a una instancia de tipo T.
*/
T* create()
- throw(RuntimeException) {
+ noexcept(false) {
T* result = NULL;
if(a_holes.empty() == false) {
\return el iterador que apunta al objeto recibido como parametro.
*/
iterator find(T* t)
- throw(RuntimeException) {
+ noexcept(false) {
iterator result = end();
if(a_randomContainer != NULL) {
@param t Instancia de un puntero de tipo T obtenido a partir del metodo #create.
*/
void release(T* t)
- throw() {
+ {
if(t == NULL)
return;
Libera el puntero asociado al iterador recibido como parametro.
\param ii Instancia a liberar.
*/
- void release(iterator ii) throw() { release(data(ii)); }
+ void release(iterator ii) { release(data(ii)); }
/**
Libera el puntero recibido como parametro. No se libera fisicamente sino que se deja marcado como
@param t Instancia de un puntero de tipo T obtenido a partir del metodo #create.
*/
- void release(const T* t) throw() { release(const_cast <T*>(t)); }
+ void release(const T* t) { release(const_cast <T*>(t)); }
/**
Marca como disponibles todos los objetos contenidos en memoria.
*/
void clear()
- throw() {
+ {
a_holes.splice(a_holes.end(), a_objects);
a_size = 0;
Devuelve un iterator al primer elemento, activo, contenido en el reciclador.
\return Un iterator al primer elemento, activo, contenido en el reciclador.
*/
- iterator begin() throw() { return a_objects.begin(); }
+ iterator begin() { return a_objects.begin(); }
/**
Devuelve un iterator al primer elemento, activo, contenido en el reciclador.
\return Un iterator al primer elemento, activo, contenido en el reciclador.
*/
- const_iterator begin() const throw() { return a_objects.begin(); }
+ const_iterator begin() const { return a_objects.begin(); }
/**
Devuelve un iterator al final de la lista de elementos activos en el reciclador.
\return Un iterator al final de la lista de elementos activos en el reciclador.
*/
- iterator end() throw() { return a_objects.end(); }
+ iterator end() { return a_objects.end(); }
/**
Devuelve un iterator al final de la lista de elementos activos en el reciclador.
\return Un iterator al final de la lista de elementos activos en el reciclador.
*/
- const_iterator end() const throw() { return a_objects.end(); }
+ const_iterator end() const { return a_objects.end(); }
/**
Devuelve el objeto referenciado por el iterator recibido como parametro.
\return El objeto referenciado por el iterator recibido como parametro.
*/
- static T* data(iterator ii) throw() { return *ii; }
+ static T* data(iterator ii) { return *ii; }
/**
Devuelve el objeto referenciado por el iterator recibido como parametro.
\return El objeto referenciado por el iterator recibido como parametro.
*/
- static const T* data(const_iterator ii) throw() { return *ii; }
+ static const T* data(const_iterator ii) { return *ii; }
private:
container a_objects;
// que nuestro size, debería ser O(1), por eso hay que llevar la cuenta "a mano".
int a_size;
-// static T* random_data (random_iterator ii) throw () { return ii->first; }
- static iterator the_iterator(random_iterator ii) throw() { return ii->second; }
+// static T* random_data (random_iterator ii) { return ii->first; }
+ static iterator the_iterator(random_iterator ii) { return ii->second; }
};
}