From: prascle
Date: Fri, 28 Jan 2005 09:55:45 +0000 (+0000)
Subject: PR: update documentation
X-Git-Tag: V2_2_0~26
X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=e5dd32f1b358b8b07863dddcd71e0a8109614b2f;p=modules%2Fkernel.git
PR: update documentation
---
diff --git a/doc/salome/KernelResources/kernel_resources-1.html b/doc/salome/KernelResources/kernel_resources-1.html
index 6652dc450..562ffa05b 100644
--- a/doc/salome/KernelResources/kernel_resources-1.html
+++ b/doc/salome/KernelResources/kernel_resources-1.html
@@ -1,7 +1,7 @@
-
+
SALOME Kernel resources for developer: Trace and debug Utilities
@@ -12,66 +12,84 @@
Previous
Contents
-
+
During the development process, an execution log is useful to
identify problems. This log contains messages, variables values,
source files names and line numbers. It is recommended to verify
assertions on variables values and if necessary, to stop the execution
-at debug time, in order to validate all parts of code.
-
+
+
The goal of debug mode is to check as many features as possible
during the early stages of the development process. The purpose of
the utilities provided in SALOME is to help the developer to add
detailed traces and check variables values, without writing a lot
-of code.
+of code.
+
When the code is assumed to be valid, the release mode optimizes
execution, in terms of speed, memory, and display only user level
-messages.
+messages.
+
But, some informations must always be displayed in both modes:
especially messages concerning environment or internal errors, with
version identification. When an end user is confronted to such a
message, he may refer to a configuration documentation or send the
message to the people in charge of SALOME installation, or to the
-development team, following the kind of error.
-
SALOME provides C++ macros for trace and debug. These macros
-are in SALOME/src/utils/utilities.h
and this file must be included
-in C++ source. Some macros are activated only in debug mode, others
-are always activated. To activate the debug mode, _DEBUG_
must be
-defined, which is the case when SALOME Makefiles are generated from
-configure, without options. When _DEBUG_
is undefined (release mode),
-the debug mode macros are defined empty (they do nothing). So, when
-switching from debug to release, it is possible (and recommended)
-to let the macro calls unchanged in the source.
-
All the macros writing on the standard output start by flushing
-the standard error. At the end of the display those macros flush
-the standard output.
-
Two informations are systematically added in front of the information
-displayed:
+are in SALOME/src/SALOMELocalTrace/utilities.h
and this file must
+be included in C++ source. Some macros are activated only in debug
+mode, others are always activated. To activate the debug mode, _DEBUG_
+must be defined, which is the case when SALOME Makefiles are generated
+from configure, without options. When _DEBUG_
is undefined (release
+mode: configure --disable-debug --enable-production
), the debug mode
+macros are defined empty (they do nothing). So, when switching from
+debug to release, it is possible (and recommended) to let the macro
+calls unchanged in the source.
+
+All the macros generate trace messages, stored in a circular
+buffer pool. A separate thread reads the messages in the buffer pool,
+and, depending on options given at SALOME start, writes the messages
+on the standard output, a file, or send them via CORBA, in case of
+a multi machine configuration.
+
+Three informations are systematically added in front of the information
+displayed:
+
+the thread number from which the message come from;
the name of the source file in which the macros is set;
-the line number of the source file at which the macro is set.
+the line number of the source file at which the macro is set.
+
+
Macros defined in debug and release modes
INFOS_COMPILATION
-The C++ macro INFOS_COMPILATION
writes on the standard output
-informations about the compiling process:
+
The C++ macro INFOS_COMPILATION
writes on the trace buffer pool
+informations about the compiling process:
+
the name of the compiler : g++, KCC, CC, pgCC
;
-the date and the time of the compiling processing process.
+the date and the time of the compiling processing process.
+
+
This macro INFOS_COMPILATION
does not have any argument. Moreover,
-it is defined in both compiling mode : _DEBUG_
and _RELEASE_
.
-
Example :
+it is defined in both compiling mode : _DEBUG_
and _RELEASE_
.
+
+Example :
+
#include "utilities.h"
@@ -81,12 +99,15 @@ int main(int argc , char **argv)
...
}
+
INFOS(str)
In both compiling mode _DEBUG_
and _RELEASE_
, The C++ macro INFOS
-writes on the standard output the string which has been passed in
-argument by the user.
-
Example :
+writes on the trace buffer pool the string which has been passed
+in argument by the user.
+
+Example :
+
#include "utilities.h"
@@ -97,19 +118,39 @@ int main(int argc , char **argv)
return 0;
}
-displays :
+
+displays :
+
main.cxx [5] : NORMAL END OF THE PROCESS
+
+
+INTERRUPTION(str)
+
+In both compiling mode _DEBUG_
and _RELEASE_
, The C++ macro INTERRUPTION
+writes on the trace buffer pool the string, with a special ABORT
+type. When the thread in charge of collecting messages finds this
+message, it terminates the application, after message treatment.
+
+IMMEDIATE_ABORT(str)
+
+In both compiling mode _DEBUG_
and _RELEASE_
, The C++ macro IMMEDIATE_ABORT
+writes the message immediately on standard error and exits the application.
+Remaining messages not treated by the message collector thread are
+lost.
+
Macros defined only in debug mode
MESSAGE(str)
In _DEBUG_
compiling mode only, the C++ macro MESSAGE
writes
-on the standard output the string which has been passed in argument
-by the user. In _RELEASE_
compiling mode, this macro is blank.
-
Example :
+on the trace buffer pool the string which has been passed in argument
+by the user. In _RELEASE_
compiling mode, this macro is blank.
+
+Example :
+
#include "utilities.h"
@@ -126,19 +167,24 @@ int main(int argc , char **argv)
return 0;
}
-displays :
+
+displays :
+
- Trace main.cxx [8] : Salome
- Trace main.cxx [12] : Aster and CASTEM
+
BEGIN_OF(func_name)
In _DEBUG_
compiling mode, The C++ macro BEGIN_OF
appends the
string "Begin of "
to the one passed in argument by the
-user and displays the result on the standard output. In _RELEASE_
-compiling mode, this macro is blank.
-
Example :
+user and displays the result on the trace buffer pool. In _RELEASE_
+compiling mode, this macro is blank.
+
+Example :
+
#include "utilities.h"
@@ -148,18 +194,23 @@ int main(int argc , char **argv)
return 0;
}
-displays :
+
+displays :
+
- Trace main.cxx [3] : Begin of a.out
+
END_OF(func_name)
In _DEBUG_
compiling mode, The C++ macro END_OF
appends the string
"Normal end of "
to the one passed in argument by the user
-and displays the result on the standard output. In _RELEASE_
compiling
-mode, this macro is blank.
-
Example :
+and displays the result on the trace buffer pool. In _RELEASE_
compiling
+mode, this macro is blank.
+
+Example :
+
#include "utilities.h"
@@ -169,17 +220,22 @@ int main(int argc , char **argv)
return 0;
}
-displays :
+
+displays :
+
- Trace main.cxx [4] : Normal end of a.out
+
SCRUTE(var)
In _DEBUG_
compiling mode, The C++ macro SCRUTE
displays its
argument which is an application variable followed by the value of
-the variable. In _RELEASE_
compiling mode, this macro is blank.
-
Example :
+the variable. In _RELEASE_
compiling mode, this macro is blank.
+
+Example :
+
#include "utilities.h"
@@ -190,19 +246,25 @@ int main(int argc , char **argv)
return 0;
}
-displays :
+
+displays :
+
- Trace main.cxx [5] : i=999
+
ASSERT(condition)
In _DEBUG_
compiling mode only, The C++ macro ASSERT
checks the
-expression passed in argument to be not NULL. If it is NULL the process
-is stopped and the condition is written on the standard output. In
-_RELEASE_
compiling mode, this macro is blank. N.B. : if ASSERT
is
-already defined, this macro is ignored.
-
Example :
+expression passed in argument to be not NULL. If it is NULL the condition
+is written with the macro INTERRUPTION
(see above). The process exits
+after trace of this last message. In _RELEASE_
compiling mode, this
+macro is blank. N.B. : if ASSERT
is already defined, this macro is
+ignored.
+
+Example :
+
#include "utilities.h"
@@ -216,6 +278,7 @@ int k;
ASSERT(k<10);
cout << table[k];
+
Next
Previous
diff --git a/doc/salome/KernelResources/kernel_resources-2.html b/doc/salome/KernelResources/kernel_resources-2.html
index 0557f1838..62acf8ca3 100644
--- a/doc/salome/KernelResources/kernel_resources-2.html
+++ b/doc/salome/KernelResources/kernel_resources-2.html
@@ -1,7 +1,7 @@
-
+
SALOME Kernel resources for developer: Exceptions
@@ -12,9 +12,9 @@
Previous
Contents
-2. Exceptions
+2. Exceptions
-2.1 C++ exceptions: class SALOME_Exception
+2.1 C++ exceptions: class SALOME_Exception
definition
@@ -24,34 +24,46 @@ a message, with optional source file name and line number. This class
is intended to serve as a base class for all kinds of exceptions
SALOME code. All the exceptions derived from SALOME_Exception
could
be handled in a single catch, in which the message associated to
-the exception is displayed, or sent to a log file.
+the exception is displayed, or sent to a log file.
+
The class SALOME_Exception
inherits its behavior from the STL
-class exception.
+class exception.
+
usage
The header SALOME/src/utils/utils_SALOME_Exception.hxx
must be
-included in the C++ source, when raised or trapped:
-
#include
"utils_SALOME_Exception.hxx
"
-
The SALOME_Exception
constructor is:
+included in the C++ source, when raised or trapped:
+
+#include
"utils_SALOME_Exception.hxx
"
+
+The SALOME_Exception
constructor is:
+
SALOME_Exception( const char *text,
const char *fileName=0,
const unsigned int lineNumber=0 );
-The exception is raised like this:
+
+The exception is raised like this:
+
throw SALOME_Exception("my pertinent message");
-or like this:
+
+or like this:
+
throw SALOME_Exception(LOCALIZED("my pertinent message"));
+
where LOCALIZED is a macro provided with utils_SALOME_Exception.hxx
-which gives file name and line number.
-
The exception is handled like this:
+which gives file name and line number.
+
+The exception is handled like this:
+
try
@@ -63,56 +75,71 @@ catch (const SALOME_Exception &ex)
cerr << ex.what() <<endl;
}
+
The what()
method overrides the one defined in the STL exception
-class.
-
2.2 CORBA exceptions
+class.
+
+2.2 CORBA exceptions
definition
The idl SALOME_Exception
provides a generic CORBA exception for
SALOME, with an attribute that gives an exception type,a message,
-plus optional source file name and line number.
+plus optional source file name and line number.
+
This idl is intended to serve for all user CORBA exceptions raised
in SALOME code, as IDL specification does not support exception inheritance.
So, all the user CORBA exceptions from SALOME could be handled in
-a single catch.
-
The exception types defined in idl are:
+a single catch.
+
+The exception types defined in idl are:
+
-COMM CORBA communication problem,
-
BAD_PARAM Bad User parameters,
-
INTERNAL_ERROR application level problem (often irrecoverable).
+
COMM CORBA communication problem,
+BAD_PARAM Bad User parameters,
+INTERNAL_ERROR application level problem (often irrecoverable).
+
+
CORBA system and user exceptions already defined in the packages
-used within SALOME, such as OmniORB exceptions, must be handled separately.
+used within SALOME, such as OmniORB exceptions, must be handled separately.
+
usage
CORBA servant, C++
The CORBA Server header for SALOME_Exception
and a macro to throw
-the exception are provided with the header SALOME/src/Utils/Utils_CorbaException.hxx
:
+the exception are provided with the header SALOME/src/Utils/Utils_CorbaException.hxx
:
+
#include "Utils_CorbaException.hxx"
+
The exception is raised with a macro which appends file name
-and line number.
+and line number.
+
if (myStudyName.size() == 0)
THROW_SALOME_CORBA_EXCEPTION("No Study Name given", \
SALOME::BAD_PARAM);
+
CORBA Client, GUI Qt C++
The CORBA Client header for SALOME_Exception
and a Qt function
-header that displays a message box are provided in SALOME/src/SALOMEGUI/SALOMEGUI_QtCatchCorbaException.hxx
:
+header that displays a message box are provided in SALOME/src/SALOMEGUI/SALOMEGUI_QtCatchCorbaException.hxx
:
+
#include "SALOMEGUI_QtCatchCorbaException.hxx"
-A typical exchange with a CORBA Servant will be:
+
+A typical exchange with a CORBA Servant will be:
+
try
@@ -123,12 +150,15 @@ catch (const SALOME::SALOME_Exception & S_ex)
{
QtCatchCorbaException(S_ex);
}
+
+
CORBA Client, C++, without GUI
Nothing specific has been provided to the developer yet. See
the idl or the Qt function SALOMEGUI_QtCatchCorbaException.hxx
to
-see how to get the information given by the exception object.
+see how to get the information given by the exception object.
+
Next
Previous
diff --git a/doc/salome/KernelResources/kernel_resources-3.html b/doc/salome/KernelResources/kernel_resources-3.html
index 64cdedde5..27f61e78f 100644
--- a/doc/salome/KernelResources/kernel_resources-3.html
+++ b/doc/salome/KernelResources/kernel_resources-3.html
@@ -1,7 +1,7 @@
-
+
SALOME Kernel resources for developer: Miscellaneous tools
@@ -11,9 +11,9 @@ Next
Previous
Contents
-3. Miscellaneous tools
+3. Miscellaneous tools
-3.1 Singleton
+3.1 Singleton
Definition
@@ -21,14 +21,17 @@ Next
A singleton is an application data which is created and deleted
only once at the end of the application process. The C++ compiler
allows the user to create a static singleton data before the first
-executable statement. They are deleted after the last statement execution.
+executable statement. They are deleted after the last statement execution.
+
The SINGLETON_
template class deals with dynamic singleton. It
is useful for functor objects. For example, an object that connects
the application to a system at creation and disconnects the application
-at deletion.
+at deletion.
+
Usage
-To create a single instance a POINT object :
+
To create a single instance a POINT object :
+
# include "Utils_SINGLETON.hxx"
@@ -36,11 +39,13 @@ at deletion.
POINT *ptrPoint=SINGLETON_<POINT>::Instance() ;
assert(ptrPoint!=NULL) ;
+
No need to delete ptrPoint. Deletion is achieved automatically
at exit. If the user tries to create more than one singleton by using
the class method SINGLETON_<TYPE>::Instance()
, the pointer
is returned with the same value even if this is done in different
-functions (threads ?).
+functions (threads ?).
+
POINT *p1=SINGLETON_<POINT>::Instance() ;
@@ -48,9 +53,11 @@ POINT *p1=SINGLETON_<POINT>::Instance() ;
POINT *p2=SINGLETON_<POINT>::Instance() ;
assert(p1==p2)
+
Design description
-Here are the principles features of the singleton design :
+
Here are the principles features of the singleton design :
+
the user creates an object of class TYPE
by using the class method
@@ -62,13 +69,16 @@ the default constructor of class TYPE
;
which is added to the generic list of destructor objects to be executed
at the end of the application (atexit
) ;
at the end of the application process all the deletions are performed
-by the Nettoyage()
C function which executes the destruction objects
+by the Nettoyage()
C function which executes the destruction objects
end then deletes the destructions objects themselves ;
-the Nettoyage()
C function using atexit() C function is embedded
-in a static single object ATEXIT_()
.
+the Nettoyage()
C function using atexit() C function is embedded
+in a static single object ATEXIT_()
.
+
-
-
+
+
+
+
Next
Previous
diff --git a/doc/salome/KernelResources/kernel_resources.html b/doc/salome/KernelResources/kernel_resources.html
index 6a11ac423..e3819dc56 100644
--- a/doc/salome/KernelResources/kernel_resources.html
+++ b/doc/salome/KernelResources/kernel_resources.html
@@ -1,7 +1,7 @@
-
+
SALOME Kernel resources for developer
@@ -14,11 +14,11 @@ Contents
SALOME Kernel resources for developer
-Antoine Yessayan, Paul Rascle Version 0.1 January 16, 2002
-
+Antoine Yessayan, Paul Rascle Version 0.2 January 28, 2005
+
ABSTRACT
-
+
This document describes the development environment for C++ and
Python. Makefiles generation and usage are introduced in another
document: "using the SALOME configuration and building system environment".
@@ -32,21 +32,21 @@ Contents
1. Trace and debug Utilities
2. Exceptions
3. Miscellaneous tools
Next
diff --git a/doc/salome/KernelResources/kernel_resources.lyx b/doc/salome/KernelResources/kernel_resources.lyx
index d696300b2..2c5935eab 100644
--- a/doc/salome/KernelResources/kernel_resources.lyx
+++ b/doc/salome/KernelResources/kernel_resources.lyx
@@ -1,5 +1,5 @@
-#LyX 1.1 created this file. For more info see http://www.lyx.org/
-\lyxformat 218
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
\textclass linuxdoc
\language english
\inputencoding default
@@ -11,6 +11,8 @@
\paperpackage a4
\use_geometry 0
\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
@@ -30,7 +32,7 @@ SALOME Kernel resources for developer
Antoine Yessayan, Paul Rascle
\layout Date
-Version 0.1 January 16, 2002
+Version 0.2 January 28, 2005
\layout Abstract
ABSTRACT
@@ -98,7 +100,7 @@ C++ Macros for trace and debug
SALOME provides C++ macros for trace and debug.
These macros are in
\family typewriter
-SALOME/src/utils/utilities.h
+SALOME/src/SALOMELocalTrace/utilities.h
\family default
and this file must be included in C++ source.
Some macros are activated only in debug mode, others are always activated.
@@ -112,18 +114,26 @@ _DEBUG_
\family typewriter
_DEBUG_
\family default
- is undefined (release mode), the debug mode macros are defined empty (they
- do nothing).
+ is undefined (release mode:
+\family typewriter
+configure --disable-debug --enable-production
+\family default
+), the debug mode macros are defined empty (they do nothing).
So, when switching from debug to release, it is possible (and recommended)
to let the macro calls unchanged in the source.
\layout Standard
-All the macros writing on the standard output start by flushing the standard
- error.
- At the end of the display those macros flush the standard output.
+All the macros generate trace messages, stored in a circular buffer pool.
+ A separate thread reads the messages in the buffer pool, and, depending
+ on options given at SALOME start, writes the messages on the standard output,
+ a file, or send them via CORBA, in case of a multi machine configuration.
\layout Standard
-Two informations are systematically added in front of the information displayed:
+Three informations are systematically added in front of the information
+ displayed:
+\layout Itemize
+
+the thread number from which the message come from;
\layout Itemize
the name of the source file in which the macros is set;
@@ -142,7 +152,7 @@ The C++ macro
\family typewriter
INFOS_COMPILATION
\family default
- writes on the standard output informations about the compiling process:
+ writes on the trace buffer pool informations about the compiling process:
\layout Itemize
@@ -208,7 +218,7 @@ _RELEASE_
\family typewriter
INFOS
\family default
- writes on the standard output the string which has been passed in argument
+ writes on the trace buffer pool the string which has been passed in argument
by the user.
\layout Standard
@@ -241,6 +251,53 @@ displays :
\layout Verbatim
main.cxx [5] : NORMAL END OF THE PROCESS
+\layout Verbatim
+
+\layout Paragraph
+
+
+\family roman
+INTERRUPTION(str)
+\layout Standard
+
+In both compiling mode
+\family typewriter
+_DEBUG_
+\family default
+ and
+\family typewriter
+_RELEASE_
+\family default
+, The C++ macro
+\family typewriter
+INTERRUPTION
+\family default
+ writes on the trace buffer pool the string, with a special
+\family typewriter
+ABORT
+\family default
+ type.
+ When the thread in charge of collecting messages finds this message, it
+ terminates the application, after message treatment.
+\layout Paragraph
+
+IMMEDIATE_ABORT(str)
+\layout Standard
+
+In both compiling mode
+\family typewriter
+_DEBUG_
+\family default
+ and
+\family typewriter
+_RELEASE_
+\family default
+, The C++ macro
+\family typewriter
+IMMEDIATE_ABORT
+\family default
+ writes the message immediately on standard error and exits the application.
+ Remaining messages not treated by the message collector thread are lost.
\layout Subsubsection
Macros defined only in debug mode
@@ -257,7 +314,7 @@ _DEBUG_
\family typewriter
MESSAGE
\family default
- writes on the standard output the string which has been passed in argument
+ writes on the trace buffer pool the string which has been passed in argument
by the user.
In
\family typewriter
@@ -335,7 +392,7 @@ BEGIN_OF
"Begin of "
\family default
to the one passed in argument by the user and displays the result on the
- standard output.
+ trace buffer pool.
In
\family typewriter
_RELEASE_
@@ -386,7 +443,7 @@ END_OF
"Normal end of "
\family default
to the one passed in argument by the user and displays the result on the
- standard output.
+ trace buffer pool.
In
\family typewriter
_RELEASE_
@@ -483,8 +540,12 @@ _DEBUG_
ASSERT
\family default
checks the expression passed in argument to be not NULL.
- If it is NULL the process is stopped and the condition is written on the
- standard output.
+ If it is NULL the condition is written with the macro
+\family typewriter
+INTERRUPTION
+\family default
+ (see above).
+ The process exits after trace of this last message.
In
\family typewriter
_RELEASE_
diff --git a/doc/salome/kernel_resources.pdf b/doc/salome/kernel_resources.pdf
index 35924a77e..b29cb2c04 100644
Binary files a/doc/salome/kernel_resources.pdf and b/doc/salome/kernel_resources.pdf differ
diff --git a/doc/salome/kernel_resources.ps b/doc/salome/kernel_resources.ps
index 7e2116598..cb78b16ba 100644
--- a/doc/salome/kernel_resources.ps
+++ b/doc/salome/kernel_resources.ps
@@ -9,7 +9,7 @@
%DVIPSCommandLine: dvips -t letter -o kernel_resources.ps
%+ kernel_resources.dvi
%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2002.01.17:1829
+%DVIPSSource: TeX output 2005.01.28:1211
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -87,211 +87,212 @@ C0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE
6C14FCA36C14F8A26C14F06C14E06C14C0000114006C5BEB1FF01F1F7BA42A>15
D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc ectt1000 10 79
-/Fc 79 126 df<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7F
-C0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480A66C14
-00A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<0107131C90380F803EA8
-011F137EEC007CA4003FB612E0B712F8A43A003E00F800A2EB7E01017C5BA8EBFC0301F8
-5BA2B712F8A4003F15E03A01F007C000A30003130F01E05BA86C486CC7FC25337DB22C>
-I38
-D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F
-5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F
-12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438164272B92C>
-40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB
-07E0A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714E0A2EB0FC0
-131F1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270164279B92C
->II<147014F8AF00
-3FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>II<007FB512F0B612F8A36C14F01D0579942C>I<121FEA3F80EA7FC0EAFFE0
-A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2151F16005D153E157E157CA215
-FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2147E147C14FC5C13015C13035C
-13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12015B12035B12075B120F5B121F
-90C9FCA25A123E127E127C12FC5AA2127021417BB92C>II<1307497EA2131FA2133F137F13FF5A1207127FB5FC13DF139FEA7C
-1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>IIII<000FB512FE4880A35D0180C8FCADEB83FE90389FFF8090
-B512E015F8819038FE03FE9038F000FF01C07F49EB3F8090C7121F6C15C0C8120FA2ED07
-E0A4123C127EB4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80F
-FC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C>I56 DI<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0
-EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>II<1502ED0F80151F
-157F15FF913803FE00EC0FFCEC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80
-000390C8FCEA07FCEA1FF8EA3FE0EAFF8090C9FCA27FEA3FE0EA1FF8EA07FC6CB4FCC67F
-EB3FE06D7EEB07FC6D7E903800FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157F151F
-150FED0200212A7BAD2C>I<007FB612F0B712F8A36C15F0CAFCA8007FB612F0B712F8A3
-6C15F025127DA12C>I<122012F87EB4FC7FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D
-7EEB07FC6D7E903800FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157FA215FF913803
-FE00EC0FFCEC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07
-FCEA1FF8EA3FE0EAFF8090C9FC12FC5A1220212A7BAD2C>I<14FE497EA4497FA214EFA2
-130781A214C7A2010F7FA314C390381F83F0A590383F01F8A490387E00FCA549137E90B5
-12FEA34880A29038F8003FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE
-6C15FC497E27347EB32C>65 D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED
-07F01503A2ED01F8A6ED03F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039
-F0001FE0ED07F0ED03F81501ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF000
-7FB612E016C0B712806CECFE0015F027337FB22C>I<02FF13700107EBE0F84913F9013F
-13FD4913FFEBFF813901FE007F4848131FD807F0130F1507485A491303485A150148C7FC
-A25A007EEC00F01600A212FE5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14
-F06C6C130716E0D803FC131F6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F001
-00138025357DB32C>I<007FB5FCB612C015F0816C803907E003FEEC00FFED7F80153FED
-1FC0ED0FE0A2150716F0150316F81501A4ED00FCACED01F8A3150316F0A2150716E0150F
-ED1FC0153FED7F80EDFF00EC03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007F
-B612F0B712F8A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A
-91C8FCA5163C167EA8007FB612FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA3
-7ED803F0C7FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5
-FC805C7E26337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC481307
-3803FC01497E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FC
-A212FE5AA8913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F
-120F6D137F6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7
-FC26357DB32C>II<007FB512F8B612FC
-A36C14F839000FC000B3B3A5007FB512F8B612FCA36C14F81E3379B22C>I75 D<387FFFE0B57EA36C5BD803F0C8FCB3
-AE16F0ED01F8A8007FB6FCB7FCA36C15F025337DB22C>IIII<007FB512
-C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A2150316F81501A6150316F0
-1507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B
-25337EB22C>II<387FFFFCB67E15E015F86C803907E007FE1401EC007F6F7E
-151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E007FCEC01FE14
-00157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB22C
->I<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7FC007E14
-7F00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EB
-FFC06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A2007814
-0712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F8
-3F13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078153C
-C71400B3AF90383FFFFCA2497F6D5BA227337EB22C>I<3B7FFF803FFFC0B56C4813E0A3
-6C496C13C03B03F00001F800B3AF6D130300015DA26D130700005D6D130F017F495A6D6C
-485AECE0FF6DB5C7FC6D5B010313F86D5B9038003F802B3480B22C>I87 D<3A3FFF03FFE0484913F0
-148714076C6D13E03A01F800FE007F0000495A13FE017E5BEB7F03013F5B1487011F5B14
-CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1FC7
-EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F0001147E49137F000380491480151FD8
-7FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>II<003FB612C04815E0A4007EC7EA1FC0ED
-3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A4A5AA24A5A4AC7FCA214FE495A
-A2495A495AA2495A495AA2495A49C8FCA213FE485AA24848EB03C049EB07E01207485A5B
-121F485AA248C7FCB7FCA46C15C023337CB22C>I<387FFFFCB512FEA314FC00FCC7FCB3
-B3B3B512FC14FEA36C13FC17416FB92C>I<127012F8A27E127C127E123E123F7EA27F12
-0F7F12077F12037F12017F12007F137C137E133EA2133F7F80130F801307801303801301
-80130080147C147E143EA2143F8081140F81140781140381140181140081157CA2157E15
-3E153F811680150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3387F
-FFFEB5FCA36C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95
-D<3801FFF0000713FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8
-127EA3ECFFFE131F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F
-14FEEB8003383FE01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>
-97 DI<903803FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E
-4848131890C9FC5A127EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F0039
-07FE03FF6CB55A6C5C6C6C5B011F13E0010390C7FC21247AA32C>IIII
-II<
-1307EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007F
-B512FCB612FEA36C14FC1F3479B32C>I107 D<387FFFE0B57EA37EEA0003B3B3A5007F
-B61280B712C0A36C158022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD8
-7FFF13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B3
-3B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397F
-F01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B
-5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C>II<397FF01FE0
-39FFF8FFF801FB13FE90B6FC6C158000019038F07FC09138801FE091380007F049EB03F8
-5BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE0
-9138E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B2736
-7FA32C>I114
-D<90387FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0007F1400
-13F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE0078147F00
-FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8148039701FFC
-0020247AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0
-A5EC800F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7EAD2C>I<
-3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7
-FC6D15807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE148314016C
-15FC3A03E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2017E13FC
-013E5BA2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA2
-6D5A147C27247EA32C>II<3A3FFF03
-FFF048018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC87E09038
-0FCFC0903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB
-0FC7EC83E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC1483B514
-FE6C15FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0
-000F806C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F
-815DA2EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E14
-7CA214FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA
-07E027367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A00
-3C495AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848
-EB01E04848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF020713
-80141F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D
-7E6C7FC67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F1407020013002141
-7BB92C>I125 D E
+%DVIPSBitmapFont: Fc ectt1000 10 80
+/Fc 80 126 df<007FB512F0B612F8A36C14F01D0579942C>21 D<121FEA3F80EA7FC0EA
+FFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B34
+70B32C>33 D<003C131E007F137F481480A66C1400A6007E7FA6003E133EA3003C131E00
+1C131C191977B32C>I<0107131C90380F803EA8011F137EEC007CA4003FB612E0B712F8
+A43A003E00F800A2EB7E01017C5BA8EBFC0301F85BA2B712F8A4003F15E03A01F007C000
+A30003130F01E05BA86C486CC7FC25337DB22C>I38 D<143814FC13011303EB07F8EB0FF0EB1FC0EB
+3F80EB7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E
+127EA3127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB
+07F8EB03FC130113001438164272B92C>40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E
+6C7E6C7E137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC1300AC1301
+14F8A3130314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA
+3FC0485A48C7FC5A5A1270164279B92C>II<147014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB
+2C>II<007FB512F0B612F8A36C14F01D
+0579942C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED
+0F80A2151F16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C
+143EA2147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13
+FC5B12015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417B
+B92C>II<1307497EA2131FA2133F13
+7F13FF5A1207127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477
+B32C>IIII<000FB512FE4880
+A35D0180C8FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49
+EB3F8090C7121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F
+80007FEC7F006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF82334
+7CB22C>I56 DI<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA
+3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>I<
+EA0F80EA1FC0EA3FE0EA7FF0A5EA3FE0EA1FC0EA0F80C7FCAEEA0F80EA1FE0EA3FF0EA7F
+F8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012FC
+12700E3071A32C>I<1502ED0F80151F157F15FF913803FE00EC0FFCEC1FF0EC7FE0ECFF
+80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF8090C9FC
+A27FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800FF80EC7FE0EC1F
+F0EC0FFCEC03FE913800FF80157F151F150FED0200212A7BAD2C>I<007FB612F0B712F8
+A36C15F0CAFCA8007FB612F0B712F8A36C15F025127DA12C>I<122012F87EB4FC7FEA3F
+E0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800FF80EC7FE0EC1FF0EC0FFC
+EC03FE913800FF80157FA215FF913803FE00EC0FFCEC1FF0EC7FE0ECFF80D903FEC7FC49
+5AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF8090C9FC12FC5A1220212A
+7BAD2C>I<14FE497EA4497FA214EFA2130781A214C7A2010F7FA314C390381F83F0A590
+383F01F8A490387E00FCA549137E90B512FEA34880A29038F8003FA34848EB1F80A40007
+15C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>65
+D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0
+A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501
+ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CECFE
+0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE00
+7F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE
+5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F
+6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<007F
+B5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0A2150716F01503
+16F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153FED7F80EDFF00EC
+03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712F8A37E3903F000
+01A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C167EA8007FB6
+12FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7FCA716781600A5
+15F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26337EB22C>I<90
+3901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC01497E4848137F4848
+133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8913803FFF84A13
+FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F6C7E6C6C13FF6D
+5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB32C>II<007FB512F8B612FCA36C14F839000FC000B3B3A5
+007FB512F8B612FCA36C14F81E3379B22C>I75 D<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7
+FCA36C15F025337DB22C>IIII<007FB512C0B612F88115FF6C15802603
+F00013C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90
+B61280160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>II<
+387FFFFCB67E15E015F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F4B
+C7FCEC01FE140790B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5D8
+7FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB22C>I<90381FF80790B5EA0F80
+4814CF000714FF5A381FF01F383FC003497E48C7FC007E147F00FE143F5A151FA46CEC0F
+00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14F06C6C7F01077F90
+38007FFEEC07FF02001380153FED1FC0A2ED0FE0A20078140712FCA56CEC0FC0A26CEC1F
+806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8700790C7FC23357C
+B32C>I<007FB612FCB712FEA43AFC007E007EA70078153CC71400B3AF90383FFFFCA249
+7F6D5BA227337EB22C>I<3B7FFF803FFFC0B56C4813E0A36C496C13C03B03F00001F800
+B3AF6D130300015DA26D130700005D6D130F017F495A6D6C485AECE0FF6DB5C7FC6D5B01
+0313F86D5B9038003F802B3480B22C>I87 D<3A3FFF03FFE0484913F0148714076C6D13E03A01F800
+FE007F0000495A13FE017E5BEB7F03013F5B1487011F5B14CF010F5B14FF6D5BA26D90C7
+FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83EC03F8EB7F01
+017E7FEBFE00497F0001147E49137F000380491480151FD87FFEEBFFFC6D5AB514FE6C15
+FC497E27337EB22C>II<003FB612C04815E0A4007EC7EA1FC0ED3F80A2ED7F00157E15FE4A5A
+003C5CC712034A5AA24A5A4A5AA24A5A4AC7FCA214FE495AA2495A495AA2495A495AA249
+5A49C8FCA213FE485AA24848EB03C049EB07E01207485A5B121F485AA248C7FCB7FCA46C
+15C023337CB22C>I<387FFFFCB512FEA314FC00FCC7FCB3B3B3B512FC14FEA36C13FC17
+416FB92C>I<127012F8A27E127C127E123E123F7EA27F120F7F12077F12037F12017F12
+007F137C137E133EA2133F7F80130F80130780130380130180130080147C147E143EA214
+3F8081140F81140781140381140181140081157CA2157E153E153F811680150FA2ED0700
+21417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3387FFFFEB5FCA36C13FC17417DB9
+2C>I<007FB6FCB71280A46C150021067B7D2C>95 D<3801FFF0000713FE001F6D7E15E0
+48809038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F
+48EB807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15
+FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>97 DI<903803FFE0011F13F801
+7F13FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2
+127F6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E0
+010390C7FC21247AA32C>IIIIII<1307EB1FC0A2497EA36D5AA20107C7FC
+90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>
+I107 D<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I<
+3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF8
+3F496C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8
+D87FFC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6C
+B6FC00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C
+01E0140029247FA32C>II<397FF01FE039FFF8FFF801FB13FE90B6FC6C15800001
+9038F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14
+FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813
+F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I114 D<90387FF8700003B512F8120F5A5A387F
+C00F387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0
+C66C13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E6D13FE90
+38F007FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E133FA9007FB6FC
+B71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6DB5128016
+0001035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3007F7F0001EB
+000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603FE0713002924
+7FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D131F00011500A2
+6D5B0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA21483010F5BA2
+14C701075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>II<3A3FFF03FFF048018713F8A36C010313F03A00FC00
+7E005D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF6D90C7FC5C6D
+5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F0013F7FEB7E0001
+7C137C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C>I<3A7FFF01
+FFFCB5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012005D6D133E13
+7C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3ECE7C013
+0114F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F5BEA7F83EB87
+E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003FB612E04815F0
+A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A5A4A5A4AC7FC
+EB01FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A485A485A485A48
+5AB7FCA46C15E024247DA32C>I<15FF02071380141F147F91B512004913C04AC7FCEB03
+F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C7FC67F131FEB07F01303B380EB01FE
+ECFFC06D13FF6E1380141F14070200130021417BB92C>I125
+D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fd ecbx1200 12 36
/Fd 36 121 df<160C161EB3B0007FBB1280BC12C0A26C1A80C9001ECAFCB3B0160C4A4A
@@ -439,128 +440,131 @@ F0017F13FC3901FC07FF2603F003138048486C13C0496C13E0EA0FF86D14F0487EA66C48
804AC7FC14F090C9FCA7EB03FE90381FFFE0017F13F89038FE07FC9038F003FFD9C00113
80496C13C090C7FC000E15E0C8127F16F0A216F8A3121FEA3FC0487E12FF7FA316F05B15
FFD87F8014E0007EC713C0003E5B003F4913806C6C481300390FF01FFE6CB512F8000114
-E06C6C1380D90FF8C7FC25377BB530>53 D<123C123EEA3FE090B71280A41700485D5E5E
-5E5EA2007CC7EA0FC000784A5A4BC7FC00F8147E485C5D14014A5AC7485A4A5AA24A5A14
-3F4AC8FCA214FEA213015C1303A21307A2130F5CA2131FA5133FA96D5A6D5A6D5A29397B
-B730>55 D65
-DII<
-B87E17F817FF18C028007FF8000713F09338007FF8EF1FFE717E050313807113C0A27113
-E0F07FF0A2F03FF8A219FC181FA219FEA419FFAC19FEA419FC183FA219F8187F19F0F0FF
-E0A24D13C04D13804D1300EF1FFEEF7FFC933807FFF0B912C095C7FC17FC178040397DB8
-49>IIII73 D76 DIIIIIII<003FB91280A4D9F800EBF003D87FC09238007FC049
-161F007EC7150FA2007C1707A200781703A400F818E0481701A4C892C7FCB3AE010FB7FC
-A43B387DB742>II<007FB9FCBA1280A36C1800
-3905786A4A>95 D97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC91
-38FE03FFDAF00013804AEB7FC00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FC
-A3EE1FF8A217F06E133F6EEB7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFF
-F8D9E00F13E0D9C00390C7FC2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF8013
-802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12FFA912
-7FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F
-13F00101138023257DA42A>II<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F
-484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127F
-A36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F
-13FC010113E025257DA42C>II<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE07138F260FF8
-01131F48486C138F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C
-6C4890C7FC3907FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B5
-12F8EDFF8016E06C15F86C816C815A001F81393FC0000F48C8138048157F5A163FA36C15
-7F6C16006D5C6C6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC010713F0
-2B377DA530>I<13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01
-138014784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>II<13FFB5FCA412077EB3B3ACB512FCA4163A7DB91B>108 D<01FED97FE0EB0FFC00
-FF902601FFFC90383FFF80020701FF90B512E0DA1F81903983F03FF0DA3C00903887801F
-000749DACF007F00034914DE6D48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB500
-83B512F0A44C257DA451>I<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C01
-1380000713780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>
-I<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7E
-A2003F81491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C
-6C495A6C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01
-FF80B5000F13F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0
-EE3FF8A2EE1FFCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF003
-13809139FC07FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>
-I<9038FE03F000FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F
-80ED3F00150C92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFE
-F8000F13FF381FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C
-13FCECFF806C14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E15
-7E7E157C6C14FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>
-I<130FA55BA45BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80
-F014816CEBC3E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFF
-A4000714016C80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F00103
-138030257DA435>III
-II
+E06C6C1380D90FF8C7FC25377BB530>53 D<49B47E010F13F0013F13FC9038FE01FF3A01
+F8007F804848EB3FC04848EB1FE0150F484814F01507121FA27F7F7F6D130F01FF14E014
+C09138E01FC06CEBF83F9138FE7F806C9038FFFE005D6C14F06C14FC6C14FF6D14806D14
+C090B612E0D803FD14F02607F07F13F848487E261FC00F13FC383F8003007F010013FE90
+C7127F151F00FE140715031501A21500A216FC7E6C14016D14F86C6C13036DEB07F06C6C
+EB0FE0D80FFEEB7FC00003B61200C614FC013F13F00103138027377CB530>56
+D65 DIIIIII73
+D76 DII<
+EDFFF8020FEBFF80027F14F0903A01FFC01FFC010790380007FFD91FFC010113C0D93FF0
+6D6C7E49486E7E49486E7E48496E7E48834890C86C7EA248486F1380A248486F13C0A200
+3F18E0A348486F13F0A400FF18F8AC007F18F06D5DA3003F18E0A26D5D001F18C0A26C6C
+4B13806C18006E5C6C6D4A5A6C5F6C6D4A5A6D6C4A5AD93FFC49485A6DB401075B0107D9
+C01F90C7FC010190B512FC6D6C14F0020F1480020001F8C8FC3D3B7BB948>IIIII<003FB91280A4D9F800EBF003D87FC09238007FC049161F007EC7150FA200
+7C1707A200781703A400F818E0481701A4C892C7FCB3AE010FB7FCA43B387DB742>II<007FB9FCBA1280A36C18003905786A4A>95
+D97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF000
+13804AEB7FC00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F0
+6E133F6EEB7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9
+C00390C7FC2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF8013802603FE0013C0
+48485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01
+E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023
+257DA42A>I
+I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C0001FEC
+1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F
+6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025
+257DA42C>II<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE07138F260FF801131F48486C13
+8F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C6C4890C7FC3907
+FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B512F8EDFF8016E0
+6C15F86C816C815A001F81393FC0000F48C8138048157F5A163FA36C157F6C16006D5C6C
+6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<
+13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A
+14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>II<13FFB5
+FCA412077EB3B3ACB512FCA4163A7DB91B>108 D<01FED97FE0EB0FFC00FF902601FFFC
+90383FFF80020701FF90B512E0DA1F81903983F03FF0DA3C00903887801F000749DACF00
+7F00034914DE6D48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C
+257DA451>I<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C01138000071378
+0003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0
+010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F814913
+03007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C49
+5A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01FF80B5000F13
+F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0EE3FF8A2EE1F
+FCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07
+FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F0
+00FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C
+92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFEF8000F13FF38
+1FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C13FCECFF806C
+14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E157E7E157C6C14
+FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>I<130FA55BA4
+5BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3
+E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C
+80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F00103138030257DA4
+35>IIIII
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff ecbx1440 14.4 24
@@ -764,17 +768,15 @@ F0130013F8023C5C0001017C147EED01F813FC027814FE0000D9F8005BA24A13FC017C5D
075C130FA2495A1220D8383FC8FCEA3FFEA25B5BEA0FE023367FA426>I
E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh ecrm1000 10 70
-/Fh 70 123 df27
DII<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B12
-0F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C
-7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40
+12C0A32A3B7FBA2E>I<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485A
+A212075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F1207
+7F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40
D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F
A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2
5BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<1530B3A8B912FCA2C800
@@ -1069,7 +1071,7 @@ letter
1 0 bop 0 201 a Fi(SALOME)54 b(Kernel)g(resources)f(fo)l(r)g(develop)t
(er)p 0 315 3900 24 v 0 428 a Fh(An)n(toine)28 b(Y)-7
b(essa)n(y)n(an,)25 b(P)n(aul)j(Rascle)1735 b(V)-7 b(ersion)27
-b(0.1)g(Jan)n(uary)e(16,)i(2002)0 734 y Fg(This)33 b(do)r(cument)g
+b(0.2)g(Jan)n(uary)e(28,)i(2005)0 734 y Fg(This)33 b(do)r(cument)g
(describ)r(es)g(the)g(development)f(environment)g(fo)n(r)i(C++)e(and)h
(Python.)53 b(Mak)n(e\034les)32 b(generation)g(and)h(usage)0
848 y(a)n(re)40 b(intro)r(duced)f(in)h(another)g(do)r(cument:)61
@@ -1105,7 +1107,7 @@ g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(5)315 3101 y(2.1.2)94 b(usage)79 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)134 b(5)125 3257 y(2.2)83 b(CORBA)28 b(exceptions)f(.)41
+(.)h(.)134 b(6)125 3257 y(2.2)83 b(CORBA)28 b(exceptions)f(.)41
b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3414 y(2.2.1)94 b(de\034nition)67
@@ -1116,13 +1118,13 @@ b(usage)79 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(7)0 3810 y Fe(3)77 b(Miscellaneous)29 b(to)s(ols)2919
-b(7)125 3966 y Fh(3.1)83 b(Singleton)c(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h
+b(8)125 3966 y Fh(3.1)83 b(Singleton)c(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)134 b(7)315 4123 y(3.1.1)94 b(De\034nition)50
+(.)f(.)h(.)f(.)h(.)134 b(8)315 4123 y(3.1.1)94 b(De\034nition)50
b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 4279 y(3.1.2)94
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)315 4279 y(3.1.2)94
b(Usage)63 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
@@ -1164,280 +1166,302 @@ b(When)32 b(an)g(end)g(user)f(is)g(confron)n(ted)g(to)h(suc)n(h)f(a)h
(eople)f(in)g(c)n(harge)e(of)i(SALOME)h(installation,)0
1366 y(or)i(to)g(the)h(dev)n(elopmen)n(t)f(team,)h(follo)n(wing)e(the)i
(kind)g(of)f(error.)0 1658 y Fd(1.2)112 b(C++)38 b(Macros)g(for)f
-(trace)g(and)i(debug)0 1868 y Fh(SALOME)23 b(pro)n(vides)d(C++)h
-(macros)g(for)g(trace)h(and)f(debug.)35 b(These)22 b(macros)e(are)i(in)
-g Fc(SALOME/src/utils)o(/u)o(ti)o(lit)o(ie)o(s.)o(h)0
-1981 y Fh(and)30 b(this)h(\034le)g(m)n(ust)g(b)r(e)g(included)g(in)g
-(C++)f(source.)45 b(Some)30 b(macros)f(are)h(activ)-5
-b(ated)30 b(only)g(in)h(debug)g(mo)r(de,)g(others)f(are)0
-2095 y(alw)n(a)n(ys)c(activ)-5 b(ated.)37 b(T)-7 b(o)27
-b(activ)-5 b(ate)28 b(the)g(debug)f(mo)r(de,)h Fc(_DEBUG_)d
-Fh(m)n(ust)j(b)r(e)g(de\034ned,)g(whic)n(h)g(is)g(the)g(case)f(when)h
-(SALOME)0 2208 y(Mak)n(e\034les)k(are)g(generated)f(from)i
-(con\034gure,)g(without)g(options.)53 b(When)33 b Fc(_DEBUG_)d
-Fh(is)j(unde\034ned)g(\(release)f(mo)r(de\),)j(the)0
-2322 y(debug)c(mo)r(de)h(macros)d(are)i(de\034ned)h(empt)n(y)f(\(they)h
-(do)f(nothing\).)48 b(So,)32 b(when)g(switc)n(hing)f(from)g(debug)g(to)
-g(release,)g(it)h(is)0 2436 y(p)r(ossible)27 b(\(and)h(recommended\))f
-(to)g(let)h(the)g(macro)f(calls)f(unc)n(hanged)h(in)h(the)g(source.)0
-2592 y(All)23 b(the)h(macros)d(writing)i(on)f(the)i(standard)e(output)h
-(start)g(b)n(y)f(\035ushing)h(the)g(standard)f(error.)34
-b(A)n(t)23 b(the)g(end)h(of)f(the)g(displa)n(y)0 2706
-y(those)k(macros)f(\035ush)i(the)g(standard)e(output.)0
-2862 y(T)-7 b(w)n(o)27 b(informations)f(are)h(systematically)f(added)i
-(in)g(fron)n(t)f(of)g(the)h(information)f(displa)n(y)n(ed:)125
-3102 y Fb(\017)41 b Fh(the)28 b(name)f(of)g(the)h(source)f(\034le)g(in)
-h(whic)n(h)g(the)g(macros)e(is)h(set;)125 3282 y Fb(\017)41
-b Fh(the)28 b(line)f(n)n(um)n(b)r(er)h(of)f(the)h(source)e(\034le)i(at)
-g(whic)n(h)f(the)h(macro)e(is)i(set.)0 3554 y Fe(1.2.1)94
-b(Macros)32 b(de\034ned)f(in)g(debug)h(and)g(release)f(mo)s(des)0
-3764 y(INF)m(OS_COMPILA)-8 b(TION)84 b Fh(The)30 b(C++)f(macro)g
-Fc(INFOS_COMPILATIO)o(N)24 b Fh(writes)30 b(on)g(the)g(standard)f
-(output)i(infor-)0 3878 y(mations)c(ab)r(out)h(the)f(compiling)h(pro)r
-(cess:)125 4117 y Fb(\017)41 b Fh(the)28 b(name)f(of)g(the)h(compiler)f
-(:)37 b Fc(g++,)42 b(KCC,)g(CC,)g(pgCC)p Fh(;)125 4297
-y Fb(\017)f Fh(the)28 b(date)f(and)g(the)h(time)g(of)g(the)g(compiling)
-f(pro)r(cessing)f(pro)r(cess.)0 4537 y(This)35 b(macro)f
-Fc(INFOS_COMPILATIO)o(N)29 b Fh(do)r(es)35 b(not)g(ha)n(v)n(e)f(an)n(y)
-g(argumen)n(t.)58 b(Moreo)n(v)n(er,)35 b(it)g(is)g(de\034ned)h(in)f(b)r
-(oth)h(compiling)0 4650 y(mo)r(de)28 b(:)37 b Fc(_DEBUG_)24
-b Fh(and)k Fc(_RELEASE_)p Fh(.)0 4807 y(Example)g(:)0
-5046 y Fc(#include)40 b("utilities.h")0 5160 y(int)i(main\(int)e(argc)i
-(,)i(char)d(**argv\))0 5274 y({)87 5387 y(INFOS_COMPILATIO)o(N;)p
-eop
+(trace)g(and)i(debug)0 1868 y Fh(SALOME)119 b(pro)n(vides)e(C++)h
+(macros)f(for)i(trace)f(and)g(debug.)310 b(These)119
+b(macros)e(are)h(in)0 1981 y Fc(SALOME/src/SALOM)o(EL)o(oca)o(lT)o(ra)o
+(ce/)o(ut)o(il)o(iti)o(es)o(.h)44 b Fh(and)50 b(this)g(\034le)h(m)n
+(ust)f(b)r(e)g(included)h(in)g(C++)e(source.)103 b(Some)0
+2095 y(macros)22 b(are)g(activ)-5 b(ated)23 b(only)g(in)g(debug)h(mo)r
+(de,)g(others)e(are)h(alw)n(a)n(ys)e(activ)-5 b(ated.)35
+b(T)-7 b(o)23 b(activ)-5 b(ate)23 b(the)h(debug)f(mo)r(de,)h
+Fc(_DEBUG_)0 2208 y Fh(m)n(ust)i(b)r(e)h(de\034ned,)g(whic)n(h)f(is)h
+(the)f(case)g(when)g(SALOME)h(Mak)n(e\034les)e(are)h(generated)f(from)h
+(con\034gure,)f(without)i(options.)0 2322 y(When)g Fc(_DEBUG_)c
+Fh(is)j(unde\034ned)h(\(release)f(mo)r(de:)36 b Fc(configure)k
+(\025disable-debug)d(\025enable-producti)o(on)p Fh(\),)21
+b(the)26 b(debug)0 2436 y(mo)r(de)i(macros)e(are)h(de\034ned)h(empt)n
+(y)g(\(they)h(do)e(nothing\).)38 b(So,)28 b(when)g(switc)n(hing)g(from)
+f(debug)h(to)g(release,)e(it)j(is)e(p)r(ossible)0 2549
+y(\(and)h(recommended\))f(to)g(let)h(the)g(macro)e(calls)h(unc)n
+(hanged)g(in)h(the)g(source.)0 2706 y(All)21 b(the)g(macros)e(generate)
+g(trace)h(messages,)h(stored)e(in)i(a)g(circular)e(bu\033er)i(p)r(o)r
+(ol.)34 b(A)21 b(separate)e(thread)h(reads)g(the)h(messages)0
+2819 y(in)27 b(the)g(bu\033er)f(p)r(o)r(ol,)h(and,)g(dep)r(ending)g(on)
+f(options)g(giv)n(en)f(at)i(SALOME)g(start,)f(writes)g(the)h(messages)e
+(on)h(the)h(standard)0 2933 y(output,)h(a)f(\034le,)h(or)f(send)g(them)
+h(via)f(CORBA,)h(in)g(case)e(of)i(a)f(m)n(ulti)h(mac)n(hine)f
+(con\034guration.)0 3089 y(Three)g(informations)g(are)f(systematically)
+h(added)g(in)h(fron)n(t)f(of)g(the)h(information)f(displa)n(y)n(ed:)125
+3329 y Fb(\017)41 b Fh(the)28 b(thread)f(n)n(um)n(b)r(er)g(from)g(whic)
+n(h)h(the)f(message)g(come)g(from;)125 3509 y Fb(\017)41
+b Fh(the)28 b(name)f(of)g(the)h(source)f(\034le)g(in)h(whic)n(h)g(the)g
+(macros)e(is)h(set;)125 3689 y Fb(\017)41 b Fh(the)28
+b(line)f(n)n(um)n(b)r(er)h(of)f(the)h(source)e(\034le)i(at)g(whic)n(h)f
+(the)h(macro)e(is)i(set.)0 3961 y Fe(1.2.1)94 b(Macros)32
+b(de\034ned)f(in)g(debug)h(and)g(release)f(mo)s(des)0
+4171 y(INF)m(OS_COMPILA)-8 b(TION)84 b Fh(The)28 b(C++)g(macro)g
+Fc(INFOS_COMPILATI)o(ON)22 b Fh(writes)29 b(on)f(the)h(trace)f
+(bu\033er)h(p)r(o)r(ol)g(infor-)0 4285 y(mations)e(ab)r(out)h(the)f
+(compiling)h(pro)r(cess:)125 4525 y Fb(\017)41 b Fh(the)28
+b(name)f(of)g(the)h(compiler)f(:)37 b Fc(g++,)42 b(KCC,)g(CC,)g(pgCC)p
+Fh(;)125 4705 y Fb(\017)f Fh(the)28 b(date)f(and)g(the)h(time)g(of)g
+(the)g(compiling)f(pro)r(cessing)f(pro)r(cess.)0 4944
+y(This)35 b(macro)f Fc(INFOS_COMPILATIO)o(N)29 b Fh(do)r(es)35
+b(not)g(ha)n(v)n(e)f(an)n(y)g(argumen)n(t.)58 b(Moreo)n(v)n(er,)35
+b(it)g(is)g(de\034ned)h(in)f(b)r(oth)h(compiling)0 5058
+y(mo)r(de)28 b(:)37 b Fc(_DEBUG_)24 b Fh(and)k Fc(_RELEASE_)p
+Fh(.)0 5214 y(Example)g(:)p eop
%%Page: 3 3
3 2 bop 0 -167 3900 5 v 0 -200 a Fe(1.)73 b(T)-8 b(race)34
-b(and)e(debug)f(Utilities)2644 b Fh(3)87 162 y Fc(...)0
-275 y(})0 548 y Fe(INF)m(OS\(str\))83 b Fh(In)39 b(b)r(oth)f(compiling)
-g(mo)r(de)g Fc(_DEBUG_)d Fh(and)j Fc(_RELEASE_)p Fh(,)f(The)h(C++)g
-(macro)e Fc(INFOS)g Fh(writes)i(on)g(the)0 661 y(standard)27
-b(output)h(the)g(string)e(whic)n(h)i(has)f(b)r(een)h(passed)f(in)g
-(argumen)n(t)g(b)n(y)g(the)h(user.)0 818 y(Example)g(:)0
-1057 y Fc(#include)40 b("utilities.h")0 1171 y(int)i(main\(int)e(argc)i
-(,)i(char)d(**argv\))0 1285 y({)87 1398 y(...)87 1512
-y(INFOS\("NORMAL)d(END)43 b(OF)f(THE)h(PROCESS"\);)87
-1625 y(return)e(0;)0 1739 y(})0 1978 y Fh(displa)n(ys)26
-b(:)0 2218 y Fc(main.cxx)40 b([5])i(:)i(NORMAL)d(END)h(OF)h(THE)f
-(PROCESS)0 2490 y Fe(1.2.2)94 b(Macros)32 b(de\034ned)f(only)g(in)h
-(debug)f(mo)s(de)0 2701 y(MESSA)m(GE\(str\))83 b Fh(In)19
-b Fc(_DEBUG_)d Fh(compiling)j(mo)r(de)g(only)-7 b(,)20
-b(the)f(C++)g(macro)e Fc(MESSAGE)f Fh(writes)j(on)f(the)i(standard)e
-(output)0 2814 y(the)34 b(string)g(whic)n(h)g(has)f(b)r(een)i(passed)e
-(in)i(argumen)n(t)e(b)n(y)g(the)i(user.)56 b(In)34 b
-Fc(_RELEASE_)c Fh(compiling)k(mo)r(de,)i(this)e(macro)f(is)0
-2928 y(blank.)0 3084 y(Example)28 b(:)0 3324 y Fc(#include)40
-b("utilities.h")0 3437 y(#include)g()0 3551 y(using)h
-(namespace)f(std;)0 3664 y(int)i(main\(int)e(argc)i(,)i(char)d
-(**argv\))0 3778 y({)87 3892 y(...)87 4005 y(const)h(char)f(*str)h(=)i
-("Salome";)87 4119 y(MESSAGE\(str\);)87 4232 y(...)e(const)g(string)f
-(st;)87 4346 y(st)i(=)g("Aster";)87 4459 y(MESSAGE\(c_str\(st)o(+")37
-b(and)42 b(CASTEM"\)\);)87 4573 y(return)f(0;)0 4687
-y(})0 4926 y Fh(displa)n(ys)26 b(:)0 5166 y Fc(-)43 b(Trace)f(main.cxx)
-e([8])i(:)h(Salome)0 5279 y(-)g(Trace)f(main.cxx)e([12])i(:)h(Aster)e
-(and)i(CASTEM)p eop
+b(and)e(debug)f(Utilities)2644 b Fh(3)0 162 y Fc(#include)40
+b("utilities.h")0 275 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
+389 y({)87 502 y(INFOS_COMPILATIO)o(N;)87 616 y(...)0
+730 y(})0 1002 y Fe(INF)m(OS\(str\))83 b Fh(In)23 b(b)r(oth)g
+(compiling)f(mo)r(de)h Fc(_DEBUG_)d Fh(and)i Fc(_RELEASE_)p
+Fh(,)e(The)j(C++)f(macro)f Fc(INFOS)f Fh(writes)j(on)f(the)h(trace)0
+1116 y(bu\033er)28 b(p)r(o)r(ol)f(the)h(string)f(whic)n(h)g(has)g(b)r
+(een)h(passed)f(in)h(argumen)n(t)e(b)n(y)i(the)g(user.)0
+1272 y(Example)g(:)0 1512 y Fc(#include)40 b("utilities.h")0
+1625 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
+1739 y({)87 1852 y(...)87 1966 y(INFOS\("NORMAL)d(END)43
+b(OF)f(THE)h(PROCESS"\);)87 2080 y(return)e(0;)0 2193
+y(})0 2433 y Fh(displa)n(ys)26 b(:)0 2672 y Fc(main.cxx)40
+b([5])i(:)i(NORMAL)d(END)h(OF)h(THE)f(PROCESS)0 3058
+y Fe(INTERR)m(UPTION\(str\))84 b Fh(In)72 b(b)r(oth)h(compiling)e(mo)r
+(de)i Fc(_DEBUG_)c Fh(and)j Fc(_RELEASE_)p Fh(,)80 b(The)72
+b(C++)f(macro)0 3172 y Fc(INTERRUPTION)34 b Fh(writes)k(on)g(the)h
+(trace)f(bu\033er)g(p)r(o)r(ol)h(the)g(string,)h(with)g(a)e(sp)r(ecial)
+g Fc(ABORT)e Fh(t)n(yp)r(e.)71 b(When)39 b(the)g(thread)0
+3285 y(in)28 b(c)n(harge)e(of)h(collecting)g(messages)f(\034nds)i(this)
+f(message,)g(it)h(terminates)f(the)h(application,)f(after)g(message)f
+(treatmen)n(t.)0 3558 y Fe(IMMEDIA)-8 b(TE_ABOR)g(T\(str\))83
+b Fh(In)48 b(b)r(oth)f(compiling)g(mo)r(de)h Fc(_DEBUG_)c
+Fh(and)j Fc(_RELEASE_)p Fh(,)i(The)e(C++)f(macro)0 3672
+y Fc(IMMEDIATE_ABORT)29 b Fh(writes)35 b(the)g(message)f(immediately)h
+(on)g(standard)f(error)f(and)i(exits)g(the)h(application.)59
+b(Remain-)0 3785 y(ing)27 b(messages)f(not)i(treated)f(b)n(y)g(the)h
+(message)e(collector)g(thread)h(are)g(lost.)0 4058 y
+Fe(1.2.2)94 b(Macros)32 b(de\034ned)f(only)g(in)h(debug)f(mo)s(de)0
+4268 y(MESSA)m(GE\(str\))83 b Fh(In)32 b Fc(_DEBUG_)e
+Fh(compiling)i(mo)r(de)g(only)-7 b(,)33 b(the)g(C++)f(macro)f
+Fc(MESSAGE)e Fh(writes)j(on)g(the)g(trace)g(bu\033er)0
+4381 y(p)r(o)r(ol)d(the)g(string)f(whic)n(h)h(has)f(b)r(een)i(passed)e
+(in)h(argumen)n(t)e(b)n(y)i(the)g(user.)40 b(In)29 b
+Fc(_RELEASE_)d Fh(compiling)i(mo)r(de,)h(this)g(macro)0
+4495 y(is)e(blank.)0 4652 y(Example)h(:)0 4891 y Fc(#include)40
+b("utilities.h")0 5005 y(#include)g()0 5118 y(using)h
+(namespace)f(std;)0 5232 y(int)i(main\(int)e(argc)i(,)i(char)d
+(**argv\))0 5345 y({)p eop
%%Page: 4 4
4 3 bop 0 -167 3900 5 v 0 -200 a Fe(1.)73 b(T)-8 b(race)34
-b(and)e(debug)f(Utilities)2644 b Fh(4)0 162 y Fe(BEGIN_OF\(func_name\))
-82 b Fh(In)28 b Fc(_DEBUG_)c Fh(compiling)i(mo)r(de,)i(The)f(C++)f
-(macro)g Fc(BEGIN_OF)d Fh(app)r(ends)k(the)h(string)0
-275 y Fc("Begin)41 b(of)i(")27 b Fh(to)g(the)h(one)e(passed)h(in)g
-(argumen)n(t)g(b)n(y)g(the)g(user)g(and)g(displa)n(ys)f(the)i(result)f
-(on)g(the)g(standard)g(output.)37 b(In)0 389 y Fc(_RELEASE_)24
-b Fh(compiling)j(mo)r(de,)h(this)g(macro)e(is)h(blank.)0
-545 y(Example)h(:)0 751 y Fc(#include)40 b("utilities.h")0
-865 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
-978 y({)87 1092 y(BEGIN_OF\(argv[0])o(\);)87 1205 y(return)g(0;)0
-1319 y(})0 1524 y Fh(displa)n(ys)26 b(:)0 1730 y Fc(-)43
-b(Trace)f(main.cxx)e([3])i(:)h(Begin)f(of)g(a.out)0 1997
-y Fe(END_OF\(func_name\))82 b Fh(In)47 b Fc(_DEBUG_)c
+b(and)e(debug)f(Utilities)2644 b Fh(4)87 162 y Fc(...)87
+275 y(const)42 b(char)f(*str)h(=)i("Salome";)87 389 y(MESSAGE\(str\);)
+87 502 y(...)e(const)g(string)f(st;)87 616 y(st)i(=)g("Aster";)87
+730 y(MESSAGE\(c_str\(st)o(+")37 b(and)42 b(CASTEM"\)\);)87
+843 y(return)f(0;)0 957 y(})0 1192 y Fh(displa)n(ys)26
+b(:)0 1428 y Fc(-)43 b(Trace)f(main.cxx)e([8])i(:)h(Salome)0
+1541 y(-)g(Trace)f(main.cxx)e([12])i(:)h(Aster)e(and)i(CASTEM)0
+1813 y Fe(BEGIN_OF\(func_name\))82 b Fh(In)28 b Fc(_DEBUG_)c
+Fh(compiling)i(mo)r(de,)i(The)f(C++)f(macro)g Fc(BEGIN_OF)d
+Fh(app)r(ends)k(the)h(string)0 1927 y Fc("Begin)41 b(of)i(")26
+b Fh(to)h(the)g(one)f(passed)g(in)h(argumen)n(t)e(b)n(y)i(the)g(user)f
+(and)g(displa)n(ys)g(the)h(result)f(on)h(the)g(trace)f(bu\033er)g(p)r
+(o)r(ol.)37 b(In)0 2040 y Fc(_RELEASE_)24 b Fh(compiling)j(mo)r(de,)h
+(this)g(macro)e(is)h(blank.)0 2197 y(Example)h(:)0 2432
+y Fc(#include)40 b("utilities.h")0 2546 y(int)i(main\(int)e(argc)i(,)i
+(char)d(**argv\))0 2659 y({)87 2773 y(BEGIN_OF\(argv[0])o(\);)87
+2886 y(return)g(0;)0 3000 y(})0 3235 y Fh(displa)n(ys)26
+b(:)0 3471 y Fc(-)43 b(Trace)f(main.cxx)e([3])i(:)h(Begin)f(of)g(a.out)
+0 3743 y Fe(END_OF\(func_name\))82 b Fh(In)47 b Fc(_DEBUG_)c
Fh(compiling)i(mo)r(de,)51 b(The)46 b(C++)f(macro)f Fc(END_OF)g
-Fh(app)r(ends)i(the)g(string)0 2110 y Fc("Normal)41 b(end)h(of)h(")38
-b Fh(to)h(the)h(one)f(passed)f(in)h(argumen)n(t)g(b)n(y)f(the)i(user)e
-(and)h(displa)n(ys)f(the)i(result)f(on)g(the)g(standard)0
-2224 y(output.)e(In)28 b Fc(_RELEASE_)c Fh(compiling)j(mo)r(de,)h(this)
-g(macro)e(is)h(blank.)0 2380 y(Example)h(:)0 2586 y Fc(#include)40
-b("utilities.h")0 2700 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
-2813 y({)87 2927 y(END_OF\(argv[0]\);)87 3040 y(return)g(0;)0
-3154 y(})0 3360 y Fh(displa)n(ys)26 b(:)0 3565 y Fc(-)43
-b(Trace)f(main.cxx)e([4])i(:)h(Normal)e(end)i(of)f(a.out)0
-3832 y Fe(SCR)m(UTE\(v)-5 b(ar\))84 b Fh(In)30 b Fc(_DEBUG_)c
-Fh(compiling)j(mo)r(de,)h(The)f(C++)f(macro)g Fc(SCRUTE)f
-Fh(displa)n(ys)h(its)h(argumen)n(t)f(whic)n(h)h(is)g(an)0
-3946 y(application)21 b(v)-5 b(ariable)22 b(follo)n(w)n(ed)f(b)n(y)h
-(the)g(v)-5 b(alue)22 b(of)g(the)h(v)-5 b(ariable.)34
-b(In)22 b Fc(_RELEASE_)d Fh(compiling)j(mo)r(de,)h(this)f(macro)f(is)h
-(blank.)0 4102 y(Example)28 b(:)0 4308 y Fc(#include)40
-b("utilities.h")0 4421 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
-4535 y({)87 4648 y(const)h(int)g(i=999;)87 4762 y(if\()g(i)i(>)f(0)g
-(\))g(SCRUTE\(i\))d(;)j(i=i+1;)87 4875 y(return)e(0;)0
-4989 y(})0 5195 y Fh(displa)n(ys)26 b(:)0 5400 y Fc(-)43
-b(Trace)f(main.cxx)e([5])i(:)h(i=999)p eop
+Fh(app)r(ends)i(the)g(string)0 3856 y Fc("Normal)41 b(end)h(of)h(")32
+b Fh(to)g(the)i(one)e(passed)g(in)h(argumen)n(t)e(b)n(y)h(the)h(user)f
+(and)h(displa)n(ys)e(the)i(result)g(on)f(the)h(trace)f(bu\033er)0
+3970 y(p)r(o)r(ol.)37 b(In)27 b Fc(_RELEASE_)d Fh(compiling)j(mo)r(de,)
+h(this)g(macro)e(is)i(blank.)0 4126 y(Example)g(:)0 4362
+y Fc(#include)40 b("utilities.h")0 4475 y(int)i(main\(int)e(argc)i(,)i
+(char)d(**argv\))0 4589 y({)87 4702 y(END_OF\(argv[0]\);)87
+4816 y(return)g(0;)0 4929 y(})0 5165 y Fh(displa)n(ys)26
+b(:)0 5400 y Fc(-)43 b(Trace)f(main.cxx)e([4])i(:)h(Normal)e(end)i(of)f
+(a.out)p eop
%%Page: 5 5
5 4 bop 0 -167 3900 5 v 0 -200 a Fe(2.)73 b(Exceptions)3255
-b Fh(5)0 162 y Fe(ASSER)-8 b(T\(condition\))82 b Fh(In)33
-b Fc(_DEBUG_)c Fh(compiling)i(mo)r(de)i(only)-7 b(,)33
-b(The)f(C++)f(macro)g Fc(ASSERT)e Fh(c)n(hec)n(ks)i(the)i(expression)0
-275 y(passed)23 b(in)h(argumen)n(t)f(to)g(b)r(e)i(not)e(NULL.)i(If)f
-(it)g(is)g(NULL)g(the)g(pro)r(cess)f(is)g(stopp)r(ed)h(and)g(the)g
-(condition)g(is)f(written)h(on)g(the)0 389 y(standard)30
-b(output.)47 b(In)31 b Fc(_RELEASE_)c Fh(compiling)j(mo)r(de,)i(this)f
-(macro)e(is)i(blank.)46 b(N.B.)31 b(:)43 b(if)32 b Fc(ASSERT)c
-Fh(is)i(already)g(de\034ned,)0 502 y(this)e(macro)e(is)i(ignored.)0
-659 y(Example)g(:)0 898 y Fc(#include)40 b("utilities.h")0
-1012 y(...)0 1126 y(const)h(char)h(*ptrS)g(=)h(fonc\(\);)0
-1239 y(ASSERT\(ptrS!=NUL)o(L\))o(;)0 1353 y(cout)f(<<)h
-(strlen\(ptrS\);)0 1466 y(float)e(table[10];)0 1580 y(int)h(k;)0
-1693 y(...)0 1807 y(ASSERT\(k<10\);)0 1921 y(cout)g(<<)h(table[k];)0
-2259 y Ff(2)131 b(Exceptions)0 2516 y Fd(2.1)112 b(C++)38
-b(exceptions:)49 b(class)38 b(SALOME_Exception)0 2727
-y Fe(2.1.1)94 b(de\034nition)0 2937 y Fh(The)30 b(class)f
-Fc(SALOME_Exceptio)o(n)24 b Fh(pro)n(vides)k(a)h(generic)g(metho)r(d)h
-(to)g(send)f(a)h(message,)f(with)h(optional)f(source)f(\034le)i(name)0
-3050 y(and)g(line)g(n)n(um)n(b)r(er.)43 b(This)30 b(class)f(is)h(in)n
-(tended)g(to)g(serv)n(e)e(as)h(a)h(base)f(class)g(for)g(all)h(kinds)g
-(of)g(exceptions)f(SALOME)h(co)r(de.)0 3164 y(All)25
-b(the)g(exceptions)e(deriv)n(ed)h(from)g Fc(SALOME_Exception)18
-b Fh(could)24 b(b)r(e)h(handled)f(in)h(a)f(single)f(catc)n(h,)i(in)g
-(whic)n(h)f(the)h(message)0 3277 y(asso)r(ciated)h(to)i(the)g
-(exception)f(is)g(displa)n(y)n(ed,)g(or)f(sen)n(t)i(to)f(a)g(log)g
-(\034le.)0 3434 y(The)h(class)e Fc(SALOME_Exception)21
-b Fh(inherits)28 b(its)f(b)r(eha)n(vior)f(from)i(the)g(STL)f(class)g
-(exception.)0 3706 y Fe(2.1.2)94 b(usage)0 3916 y Fh(The)26
-b(header)g Fc(SALOME/src/util)o(s/)o(uti)o(ls)o(_S)o(ALO)o(ME)o(_E)o
-(xce)o(pt)o(io)o(n.h)o(xx)20 b Fh(m)n(ust)26 b(b)r(e)h(included)f(in)h
-(the)f(C++)g(source,)f(when)0 4030 y(raised)h(or)h(trapp)r(ed:)0
-4187 y Fc(#include)40 b("utils_SALOME_Ex)o(cep)o(ti)o(on)o(.hx)o(x")0
-4343 y Fh(The)28 b Fc(SALOME_Exceptio)o(n)21 b Fh(constructor)26
-b(is:)0 4582 y Fc(SALOME_Exception)o(\()37 b(const)42
-b(char)g(*text,)784 4696 y(const)g(char)g(*fileName=0,)784
-4810 y(const)g(unsigned)e(int)i(lineNumber=0)d(\);)0
-5049 y Fh(The)28 b(exception)f(is)g(raised)g(lik)n(e)g(this:)0
-5289 y Fc(throw)41 b(SALOME_Exception\()o("m)o(y)d(pertinent)h
-(message"\);)p eop
+b Fh(5)0 162 y Fe(SCR)m(UTE\(v)-5 b(ar\))84 b Fh(In)30
+b Fc(_DEBUG_)c Fh(compiling)j(mo)r(de,)h(The)f(C++)f(macro)g
+Fc(SCRUTE)f Fh(displa)n(ys)h(its)h(argumen)n(t)f(whic)n(h)h(is)g(an)0
+275 y(application)21 b(v)-5 b(ariable)22 b(follo)n(w)n(ed)f(b)n(y)h
+(the)g(v)-5 b(alue)22 b(of)g(the)h(v)-5 b(ariable.)34
+b(In)22 b Fc(_RELEASE_)d Fh(compiling)j(mo)r(de,)h(this)f(macro)f(is)h
+(blank.)0 432 y(Example)28 b(:)0 671 y Fc(#include)40
+b("utilities.h")0 785 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
+898 y({)87 1012 y(const)h(int)g(i=999;)87 1126 y(if\()g(i)i(>)f(0)g(\))
+g(SCRUTE\(i\))d(;)j(i=i+1;)87 1239 y(return)e(0;)0 1353
+y(})0 1592 y Fh(displa)n(ys)26 b(:)0 1832 y Fc(-)43 b(Trace)f(main.cxx)
+e([5])i(:)h(i=999)0 2104 y Fe(ASSER)-8 b(T\(condition\))82
+b Fh(In)33 b Fc(_DEBUG_)c Fh(compiling)i(mo)r(de)i(only)-7
+b(,)33 b(The)f(C++)f(macro)g Fc(ASSERT)e Fh(c)n(hec)n(ks)i(the)i
+(expression)0 2218 y(passed)c(in)h(argumen)n(t)e(to)h(b)r(e)h(not)g
+(NULL.)g(If)g(it)g(is)f(NULL)h(the)g(condition)g(is)f(written)h(with)g
+(the)g(macro)e Fc(INTERRUPTION)0 2331 y Fh(\(see)f(ab)r(o)n(v)n(e\).)36
+b(The)27 b(pro)r(cess)f(exits)h(after)f(trace)h(of)g(this)g(last)g
+(message.)35 b(In)28 b Fc(_RELEASE_)23 b Fh(compiling)k(mo)r(de,)g
+(this)g(macro)f(is)0 2445 y(blank.)37 b(N.B.)27 b(:)37
+b(if)28 b Fc(ASSERT)e Fh(is)h(already)f(de\034ned,)i(this)g(macro)e(is)
+i(ignored.)0 2601 y(Example)g(:)0 2841 y Fc(#include)40
+b("utilities.h")0 2955 y(...)0 3068 y(const)h(char)h(*ptrS)g(=)h
+(fonc\(\);)0 3182 y(ASSERT\(ptrS!=NUL)o(L\))o(;)0 3295
+y(cout)f(<<)h(strlen\(ptrS\);)0 3409 y(float)e(table[10];)0
+3522 y(int)h(k;)0 3636 y(...)0 3750 y(ASSERT\(k<10\);)0
+3863 y(cout)g(<<)h(table[k];)0 4201 y Ff(2)131 b(Exceptions)0
+4459 y Fd(2.1)112 b(C++)38 b(exceptions:)49 b(class)38
+b(SALOME_Exception)0 4669 y Fe(2.1.1)94 b(de\034nition)0
+4879 y Fh(The)30 b(class)f Fc(SALOME_Exceptio)o(n)24
+b Fh(pro)n(vides)k(a)h(generic)g(metho)r(d)h(to)g(send)f(a)h(message,)f
+(with)h(optional)f(source)f(\034le)i(name)0 4993 y(and)g(line)g(n)n(um)
+n(b)r(er.)43 b(This)30 b(class)f(is)h(in)n(tended)g(to)g(serv)n(e)e(as)
+h(a)h(base)f(class)g(for)g(all)h(kinds)g(of)g(exceptions)f(SALOME)h(co)
+r(de.)0 5106 y(All)25 b(the)g(exceptions)e(deriv)n(ed)h(from)g
+Fc(SALOME_Exception)18 b Fh(could)24 b(b)r(e)h(handled)f(in)h(a)f
+(single)f(catc)n(h,)i(in)g(whic)n(h)f(the)h(message)0
+5220 y(asso)r(ciated)h(to)i(the)g(exception)f(is)g(displa)n(y)n(ed,)g
+(or)f(sen)n(t)i(to)f(a)g(log)g(\034le.)0 5376 y(The)h(class)e
+Fc(SALOME_Exception)21 b Fh(inherits)28 b(its)f(b)r(eha)n(vior)f(from)i
+(the)g(STL)f(class)g(exception.)p eop
%%Page: 6 6
6 5 bop 0 -167 3900 5 v 0 -200 a Fe(2.)73 b(Exceptions)3255
-b Fh(6)0 162 y(or)27 b(lik)n(e)g(this:)0 401 y Fc(throw)41
-b(SALOME_Exception\()o(LO)o(CAL)o(IZ)o(ED)o(\("m)o(y)c(pertinent)j
-(message"\)\);)0 641 y Fh(where)24 b(LOCALIZED)h(is)f(a)h(macro)e(pro)n
-(vided)g(with)j Fc(utils_SALOME_Ex)o(ce)o(pti)o(on)o(.h)o(xx)18
-b Fh(whic)n(h)25 b(giv)n(es)e(\034le)i(name)f(and)h(line)0
-754 y(n)n(um)n(b)r(er.)0 911 y(The)j(exception)f(is)g(handled)h(lik)n
-(e)f(this:)0 1150 y Fc(try)87 1264 y({)174 1377 y(...)87
-1491 y(})0 1605 y(catch)41 b(\(const)g(SALOME_Exception)c(&ex\))87
-1718 y({)174 1832 y(cerr)42 b(<<)h(ex.what\(\))d(<::)o(In)o(st)o(anc)o(e\()o(\))c(;)0 952 y(assert\(ptrPoint!)o(=N)o
-(ULL)o(\))g(;)0 1191 y Fh(No)27 b(need)g(to)g(delete)g(ptrP)n(oin)n(t.)
+b(to)s(ols)2901 b Fh(8)0 162 y Ff(3)131 b(Miscellaneous)45
+b(to)t(ols)0 419 y Fd(3.1)112 b(Singleton)0 629 y Fe(3.1.1)94
+b(De\034nition)0 839 y Fh(A)37 b(singleton)g(is)g(an)g(application)f
+(data)h(whic)n(h)g(is)g(created)f(and)h(deleted)h(only)f(once)f(at)h
+(the)h(end)f(of)g(the)h(application)0 953 y(pro)r(cess.)63
+b(The)36 b(C++)g(compiler)g(allo)n(ws)f(the)i(user)f(to)h(create)e(a)h
+(static)h(singleton)f(data)g(b)r(efore)g(the)h(\034rst)g(executable)0
+1067 y(statemen)n(t.)g(They)27 b(are)g(deleted)h(after)f(the)h(last)f
+(statemen)n(t)h(execution.)0 1223 y(The)g Fc(SINGLETON_)23
+b Fh(template)28 b(class)e(deals)h(with)h(dynamic)f(singleton.)36
+b(It)28 b(is)f(useful)h(for)f(functor)g(ob)5 b(jects.)37
+b(F)-7 b(or)27 b(example,)0 1337 y(an)g(ob)5 b(ject)27
+b(that)h(connects)f(the)g(application)g(to)g(a)g(system)g(at)g
+(creation)g(and)g(disconnects)f(the)i(application)f(at)g(deletion.)0
+1609 y Fe(3.1.2)94 b(Usage)0 1819 y Fh(T)-7 b(o)27 b(create)g(a)g
+(single)g(instance)g(a)g(POINT)h(ob)5 b(ject)28 b(:)0
+2059 y Fc(#)43 b(include)e("Utils_SINGLETO)o(N.h)o(xx)o(")0
+2172 y(...)0 2286 y(POINT)g(*ptrPoint=SINGLET)o(ON)o(_::)o(In)o(st)o(anc)o(e\()o(\))c(;)0 2400 y(assert\(ptrPoint!)o(=N)o
+(ULL)o(\))g(;)0 2639 y Fh(No)27 b(need)g(to)g(delete)g(ptrP)n(oin)n(t.)
37 b(Deletion)27 b(is)g(ac)n(hiev)n(ed)f(automatically)g(at)h(exit.)37
b(If)27 b(the)h(user)e(tries)h(to)g(create)f(more)g(than)0
-1305 y(one)e(singleton)g(b)n(y)g(using)f(the)i(class)e(metho)r(d)i
+2753 y(one)e(singleton)g(b)n(y)g(using)f(the)i(class)e(metho)r(d)i
Fc(SINGLETON_)p Fa(<)p Fc(TYPE)p Fa(>)o Fc(::I)o(ns)o(ta)o(nce)o(\(\))o
Fh(,)19 b(the)25 b(p)r(oin)n(ter)f(is)g(returned)g(with)h(the)0
-1419 y(same)i(v)-5 b(alue)27 b(ev)n(en)g(if)i(this)e(is)h(done)f(in)h
-(di\033eren)n(t)g(functions)f(\(threads)h(?\).)0 1658
+2866 y(same)i(v)-5 b(alue)27 b(ev)n(en)g(if)i(this)e(is)h(done)f(in)h
+(di\033eren)n(t)g(functions)f(\(threads)h(?\).)0 3106
y Fc(POINT)41 b(*p1=SINGLETON_:)o(:I)o(ns)o(tan)o(ce)o
-(\(\))c(;)0 1772 y(...)0 1885 y(POINT)k(*p2=SINGLETON_:)o
-(:I)o(ns)o(tan)o(ce)o(\(\))c(;)0 1999 y(assert\(p1==p2\))0
-2271 y Fe(3.1.3)94 b(Design)30 b(description)0 2482 y
+(\(\))c(;)0 3219 y(...)0 3333 y(POINT)k(*p2=SINGLETON_:)o
+(:I)o(ns)o(tan)o(ce)o(\(\))c(;)0 3446 y(assert\(p1==p2\))0
+3719 y Fe(3.1.3)94 b(Design)30 b(description)0 3929 y
Fh(Here)d(are)g(the)h(principles)f(features)g(of)g(the)h(singleton)f
-(design)g(:)125 2721 y Fb(\017)41 b Fh(the)28 b(user)f(creates)g(an)g
+(design)g(:)125 4169 y Fb(\017)41 b Fh(the)28 b(user)f(creates)g(an)g
(ob)5 b(ject)28 b(of)g(class)f Fc(TYPE)f Fh(b)n(y)i(using)f(the)i
(class)e(metho)r(d)h Fc(SINGLETON_)p Fa(<)p Fc(TYPE)p
-Fa(>)o Fc(::)o(In)o(sta)o(nc)o(e\()o(\))208 2835 y Fh(whic)n(h)f
+Fa(>)o Fc(::)o(In)o(sta)o(nc)o(e\()o(\))208 4282 y Fh(whic)n(h)f
(returns)g(a)g(p)r(oin)n(ter)g(to)h(the)g(single)f(ob)5
-b(ject)27 b(;)125 3015 y Fb(\017)41 b Fh(to)27 b(create)g(an)g(ob)5
+b(ject)27 b(;)125 4462 y Fb(\017)41 b Fh(to)27 b(create)g(an)g(ob)5
b(ject,)27 b Fc(SINGLETON_)p Fa(<)p Fc(TYPE)p Fa(>)o
Fc(::I)o(ns)o(tan)o(ce)o(\(\))21 b Fh(uses)27 b(the)h(default)g
-(constructor)e(of)i(class)e Fc(TYPE)g Fh(;)125 3195 y
+(constructor)e(of)i(class)e Fc(TYPE)g Fh(;)125 4642 y
Fb(\017)41 b Fh(at)31 b(the)h(same)g(time,)h(this)f(class)f(metho)r(d)h
(creates)f(a)g(destructor)g(ob)5 b(ject)31 b(whic)n(h)h(is)g(added)f
-(to)h(the)g(generic)f(list)h(of)208 3308 y(destructor)26
+(to)h(the)g(generic)f(list)h(of)208 4756 y(destructor)26
b(ob)5 b(jects)27 b(to)h(b)r(e)g(executed)f(at)g(the)h(end)g(of)g(the)g
-(application)f(\()p Fc(atexit)p Fh(\))e(;)125 3488 y
+(application)f(\()p Fc(atexit)p Fh(\))e(;)125 4936 y
Fb(\017)41 b Fh(at)30 b(the)h(end)f(of)h(the)f(application)g(pro)r
(cess)f(all)h(the)h(deletions)f(are)g(p)r(erformed)f(b)n(y)i(the)f
-Fc(Nettoyage\(\))c Fh(C)31 b(function)208 3602 y(whic)n(h)c(executes)g
+Fc(Nettoyage\(\))c Fh(C)31 b(function)208 5049 y(whic)n(h)c(executes)g
(the)h(destruction)f(ob)5 b(jects)27 b(end)h(then)g(deletes)g(the)g
(destructions)f(ob)5 b(jects)27 b(themselv)n(es)g(;)125
-3782 y Fb(\017)41 b Fh(the)23 b Fc(Nettoyage\(\))c Fh(C)k(function)g
-(using)g(atexit\(\))g(C)h(function)f(is)g(em)n(b)r(edded)h(in)f(a)g
-(static)f(single)h(ob)5 b(ject)23 b Fc(ATEXIT_\(\))p
-Fh(.)p eop
+5229 y Fb(\017)41 b Fh(the)20 b Fc(Nettoyage\(\))c Fh(C)41
+b(function)21 b(using)f(atexit\(\))h(C)40 b(function)21
+b(is)f(em)n(b)r(edded)h(in)g(a)f(static)g(single)g(ob)5
+b(ject)20 b Fc(ATEXIT_\(\))p Fh(.)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if