source: nrEngine/include/Array.h @ 1

Revision 1, 3.5 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13#ifndef __NR_ARRAY_C_H_
14#define __NR_ARRAY_C_H_
15
16
17//----------------------------------------------------------------------------------
18// Includes
19//----------------------------------------------------------------------------------
20#include "Prerequisities.h"
21
22
23/*! \defgroup gp General purpose classes
24 *
25 * This group does contain classes of the core of the engine,
26 * which are not clasifiable into other groups. This are some
27 * datastructures and simple classes which easy up your life
28 **/
29 
30namespace nrEngine{
31
32        //! Pure virtual class of an array
33        /**
34        * Array class is a pure virtual class to describe an array. Array
35        * can consists of elements of the same type
36        * \ingroup gp
37        **/
38        class _NRExport Exception
39        {
40                public:
41                        /**
42                        * Default constructor.
43                        * \param number Error code. Can be combined of more than one error code
44                        * \param description Description of the esception
45                        * \param source Where was exception thrown (function name)
46                        */
47                        Exception( Result number, const ::std::string& description, const ::std::string& source );
48       
49                        /**
50                        * Advanced constructor.
51                        * \param number Error code. Can be combined of more than one error code
52                        * \param description Description of the esception
53                        * \param source Where was exception thrown (function name)
54                        * \param file In which file was the exception
55                        * \param line Where was the exception thrown
56                        */
57                        Exception( Result number, const ::std::string& description, const ::std::string& source, char* file, long line );
58       
59                        /**
60                        * Copy constructor.
61                        */
62                        Exception(const Exception& rhs);
63
64               
65                        /**
66                         * Assert function declared as static to allow using without initialisation
67                         * of the object itself. This function will generate a formatted
68                         * error message and will log it.
69                         * @param exp Boolean expression to be checked (false = fail)
70                         * @param szExp Error message
71                         * @param szFilename Filename of the file where error happens
72                         * @param szFuncName Name of the function where assertion is checked
73                         * @param iLineNum Line number where assert fails
74                         **/
75                        static void Assert(bool exp, const char *szExp, const char *szFilename, const char* szFuncName, int iLineNum);
76
77                private:
78                        long                    lineNumber;
79                        ::std::string   description;
80                        ::std::string   source;
81                        ::std::string   file;
82                        Result                  number;
83
84                       
85                        /**
86                        * Generate the formatted assert error message.
87                        * We use two functions to allow compiler to optimize the assertion
88                        * calls.
89                        **/
90                        static void _assertMsg(const char *szExp, const char *szFilename, const char* szFuncName, int iLineNum);
91
92                        /**
93                         * Give some message to log files
94                         **/
95                        static void _log(const char *szExp, const char *szFilename, const char* szFuncName, int iLineNum, const char* msg);
96        };
97       
98}; // end namespace
99
100#endif
Note: See TracBrowser for help on using the repository browser.