X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;ds=inline;f=include%2Fanna%2Fapp%2Ffunctions.hpp;h=695c35ad03f91751bbc9de0b991d7ab8eff5cbcd;hb=refs%2Fheads%2Fmaster;hp=17c498c02befefc78b0e25eaa30716df2bf2ec05;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git
diff --git a/include/anna/app/functions.hpp b/include/anna/app/functions.hpp
index 17c498c..695c35a 100644
--- a/include/anna/app/functions.hpp
+++ b/include/anna/app/functions.hpp
@@ -1,37 +1,9 @@
-// ANNA - Anna is Not 'N' Anymore
-//
-// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
-//
-// https://bitbucket.org/testillano/anna
-//
-// 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 Google Inc. 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_app_functions_hpp
@@ -54,39 +26,22 @@ struct functions : public anna::functions {
/**
Devuelve la referencia de la instancia de nuestra aplicacion
*/
- static Application& getApp() throw(RuntimeException);
+ static Application& getApp() noexcept(false);
- /**
- Patron para obtener facilmente la instancia de un determinado componente.
- Estos dos parametros suelen ser sustituidos por la macro C FILE_LOCATION.
-
- \param fromFile Fichero desde el que se invoca a este metodo
- \param fromLine Numero de linea desde el que se invoca a este metodo.
-
- \return La instancia del componente de la clase recibida como parametro.
- \warning La clase T de implementar un metodo de la forma:
- \code
- static const char* getClassName () throw ();
- \endcode
- \see Component
- */
- template static T* component(const char* fromFile, const int fromLine)
- throw(anna::RuntimeException) {
- return component (T::getClassName(), fromFile, fromLine);
- }
/**
- Patron para obtener facilmente la instancia de un determinado componente.
- Estos dos parametros suelen ser sustituidos por la macro C FILE_LOCATION.
- \param className Nombre del componente buscado.
- \param fromFile Fichero desde el que se invoca a este metodo
- \param fromLine Numero de linea desde el que se invoca a este metodo.
+ Pattern to obtain a multi named application component instance easily.
+ Parameters are usually replaced by the macro C FILE_LOCATION.
+
+ \param className Application component class name
+ \param fromFile File which called the method
+ \param fromLine Line number within the file from where the method is called.
- \return La instancia del componente de la clase recibida como parametro.
+ \return Application component instance for the class provided at the pattern
\see Component
*/
- template static T* component(const char* className, const char* fromFile, const int fromLine)
- throw(anna::RuntimeException) {
+ template static T* componentByName(const char *className, const char* fromFile, const int fromLine)
+ noexcept(false) {
T* result = static_cast (functions::getApp().find(className));
if(result == NULL) {
@@ -99,6 +54,25 @@ struct functions : public anna::functions {
}
};
+ /**
+ Pattern to obtain a single named application component instance easily.
+ Parameters are usually replaced by the macro C FILE_LOCATION.
+
+ \param fromFile File which called the method
+ \param fromLine Line number within the file from where the method is called.
+
+ \return Application component instance for the class provided at the pattern
+ \warning T class must implement a method in the form:
+ \code
+ static const char* getClassName () ;
+ \endcode
+ \see Component
+ */
+ template static T* component(const char* fromFile, const int fromLine)
+ noexcept(false) {
+ return functions::componentByName (T::getClassName(), fromFile, fromLine);
+ }
+
}
}