1501 changed files with 0 additions and 1748649 deletions
-
74resources/3rdparty/pantheios-1.0.1-beta214/AUTHORS.txt
-
15498resources/3rdparty/pantheios-1.0.1-beta214/CHANGES.txt
-
586resources/3rdparty/pantheios-1.0.1-beta214/FAQ.txt
-
1637resources/3rdparty/pantheios-1.0.1-beta214/HISTORY.txt
-
117resources/3rdparty/pantheios-1.0.1-beta214/HOW_YOU_CAN_HELP.txt
-
43resources/3rdparty/pantheios-1.0.1-beta214/INSTALL.txt
-
21resources/3rdparty/pantheios-1.0.1-beta214/KNOWN_ISSUES.txt
-
38resources/3rdparty/pantheios-1.0.1-beta214/LICENSE.txt
-
538resources/3rdparty/pantheios-1.0.1-beta214/NEWS.txt
-
219resources/3rdparty/pantheios-1.0.1-beta214/README.txt
-
246resources/3rdparty/pantheios-1.0.1-beta214/TODO.txt
-
19resources/3rdparty/pantheios-1.0.1-beta214/bin/readme.html
-
8840resources/3rdparty/pantheios-1.0.1-beta214/build/ar/makefile
-
19946resources/3rdparty/pantheios-1.0.1-beta214/build/bc551/makefile
-
19946resources/3rdparty/pantheios-1.0.1-beta214/build/bc56/makefile
-
19946resources/3rdparty/pantheios-1.0.1-beta214/build/bc564/makefile
-
20250resources/3rdparty/pantheios-1.0.1-beta214/build/bc582/makefile
-
20250resources/3rdparty/pantheios-1.0.1-beta214/build/bc59x/makefile
-
20250resources/3rdparty/pantheios-1.0.1-beta214/build/bc61x/makefile
-
8152resources/3rdparty/pantheios-1.0.1-beta214/build/como433.unix/makefile
-
8990resources/3rdparty/pantheios-1.0.1-beta214/build/como433.win32/makefile
-
8152resources/3rdparty/pantheios-1.0.1-beta214/build/cw8.unix/makefile
-
16660resources/3rdparty/pantheios-1.0.1-beta214/build/cw8.win32/makefile
-
7538resources/3rdparty/pantheios-1.0.1-beta214/build/dm/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc32.unix/makefile
-
17352resources/3rdparty/pantheios-1.0.1-beta214/build/gcc32.win32/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc33.mac/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc33.unix/makefile
-
17352resources/3rdparty/pantheios-1.0.1-beta214/build/gcc33.win32/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc34.unix/makefile
-
17352resources/3rdparty/pantheios-1.0.1-beta214/build/gcc34.win32/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc40.mac.x64/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc40.mac/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc40.unix/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc41.unix/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc42.unix/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc43.unix/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc44.unix.file64bit/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc44.unix/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc45.unix.file64bit/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc45.unix/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc46.unix.file64bit/makefile
-
15800resources/3rdparty/pantheios-1.0.1-beta214/build/gcc46.unix/makefile
-
24592resources/3rdparty/pantheios-1.0.1-beta214/build/icl10.win32/makefile
-
24592resources/3rdparty/pantheios-1.0.1-beta214/build/icl11.win32/makefile
-
17042resources/3rdparty/pantheios-1.0.1-beta214/build/icl12.win32/makefile
-
24592resources/3rdparty/pantheios-1.0.1-beta214/build/icl6.win32/makefile
-
24592resources/3rdparty/pantheios-1.0.1-beta214/build/icl7.win32/makefile
-
24592resources/3rdparty/pantheios-1.0.1-beta214/build/icl8.win32/makefile
-
24592resources/3rdparty/pantheios-1.0.1-beta214/build/icl9.win32/makefile
-
110resources/3rdparty/pantheios-1.0.1-beta214/build/readme.html
-
14800resources/3rdparty/pantheios-1.0.1-beta214/build/sunpro59x.unix/makefile
-
8369resources/3rdparty/pantheios-1.0.1-beta214/build/vc10.unixem/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc10.x64/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc10/makefile
-
8369resources/3rdparty/pantheios-1.0.1-beta214/build/vc11.unixem/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc11.x64/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc11/makefile
-
49798resources/3rdparty/pantheios-1.0.1-beta214/build/vc5/makefile
-
15386resources/3rdparty/pantheios-1.0.1-beta214/build/vc6.unixem/makefile
-
65674resources/3rdparty/pantheios-1.0.1-beta214/build/vc6/makefile
-
48702resources/3rdparty/pantheios-1.0.1-beta214/build/vc7/makefile
-
48702resources/3rdparty/pantheios-1.0.1-beta214/build/vc71/makefile
-
8369resources/3rdparty/pantheios-1.0.1-beta214/build/vc8.unixem/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc8.x64/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc8/makefile
-
8369resources/3rdparty/pantheios-1.0.1-beta214/build/vc9.unixem/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc9.x64/makefile
-
33583resources/3rdparty/pantheios-1.0.1-beta214/build/vc9/makefile
-
140resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.101/example.c.101.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.101/implicit_link.cpp
-
118resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.N/example.c.N.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.N/implicit_link.cpp
-
71resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.assert/example.c.assert.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.assert/implicit_link.cpp
-
71resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.core.pantheios_logprintf/example.c.core.pantheios_logprintf.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.core.pantheios_logprintf/implicit_link.cpp
-
74resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.extended_severity/example.c.extended_severity.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.extended_severity/implicit_link.cpp
-
79resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.log_n/example.c.log_n.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/example.c.log_n/implicit_link.cpp
-
186resources/3rdparty/pantheios-1.0.1-beta214/examples/c/util/example.c.util.getcurrenttime/example.c.util.getcurrenttime.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/util/example.c.util.getcurrenttime/implicit_link.cpp
-
137resources/3rdparty/pantheios-1.0.1-beta214/examples/c/util/example.c.util.gethostname/example.c.util.gethostname.c
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/c/util/example.c.util.gethostname/implicit_link.cpp
-
124resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.callback/example.cpp.backends.callback.cpp
-
40resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.callback/implicit_link.cpp
-
135resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.file.callback/example.cpp.backends.file.callback.cpp
-
33resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.file.callback/implicit_link.cpp
-
129resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.file.lrsplit/example.cpp.backends.file.lrsplit.cpp
-
35resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.file.lrsplit/implicit_link.cpp
-
130resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.file/example.cpp.backends.file.cpp
-
33resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.file/implicit_link.cpp
-
125resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.mx.1/example.cpp.backends.mx.1.cpp
-
42resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.mx.1/implicit_link.cpp
-
125resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.mx.2/example.cpp.backends.mx.2.cpp
-
42resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/backends/example.cpp.backends.mx.2/implicit_link.cpp
-
66resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/contract/example.cpp.contract.PANTHEIOS_ASSERT/example.cpp.contract.PANTHEIOS_ASSERT.cpp
-
33resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/contract/example.cpp.contract.PANTHEIOS_ASSERT/implicit_link.cpp
-
66resources/3rdparty/pantheios-1.0.1-beta214/examples/cpp/contract/example.cpp.contract.PANTHEIOS_MESSAGE_ASSERT/example.cpp.contract.PANTHEIOS_MESSAGE_ASSERT.cpp
@ -1,74 +0,0 @@ |
|||||
pantheios - Authors |
|
||||
=================== |
|
||||
|
|
||||
Updated: 13th August 2011 |
|
||||
|
|
||||
|
|
||||
Authors: |
|
||||
|
|
||||
Matthew Wilson (all those crazy inventions) |
|
||||
Garth Lancaster (sage, salt 'o the earth, advice and counterpointing) |
|
||||
Adi Shavit (contributions that became be.speech) |
|
||||
|
|
||||
|
|
||||
Bug reports, fixes, questions, requests and suggestions (for which we are |
|
||||
very grateful): |
|
||||
|
|
||||
Felix Gartsman - VC++ 8 build problem |
|
||||
Mike Batten - GCC build problem on Linux |
|
||||
Volker Lucas - GCC build problem |
|
||||
CookieRaver - broken UNIX makefiles; be.file fixes and |
|
||||
suggestions; fe.N criticism |
|
||||
David Wang - VC++ string access shim (SYSTEMTIME) bug |
|
||||
Simon Sadler - suggestion for be.file; VC8 compilation issues; |
|
||||
dynamic library issues |
|
||||
Brad Cox - MAC OSX build problem; PPC vs Intel issues |
|
||||
Jim Bateman - be.COMErrorObject problems; b64 inserter compilation |
|
||||
problem; VC++ 9 compatibility issues |
|
||||
Mikael Pahmp - time formatting; missing file |
|
||||
Neal Becker - 64-bit Linux issues |
|
||||
S2027 - reported be.file Windows tail-ing issue, and provided fix. (Which |
|
||||
is nice.) |
|
||||
David Gibbs - reported VC8 / winstl::findfile_sequence bug. |
|
||||
Adi Shavit - distribution issues |
|
||||
Dave Nicholas - Linux linking issues |
|
||||
sjdc (Daniel) - fix for \r\n on Windows; highlighting further problems |
|
||||
with synchronisation. |
|
||||
alskc - reported bc564 build problem (in beta 29) |
|
||||
mis232 - reported build problems with 64-bit UNIX |
|
||||
spin-vector (Jay) - lots of ACE/UNIX/time issues & requests that'll be |
|
||||
seen over the late beta releases. |
|
||||
loo66 - Intel 9.1 compilation problem; not yet fixed |
|
||||
Mike Morel - integer inserter bug on 64-bit Linux |
|
||||
vortic - bug in beta 74 distro; out-of-date info supplied by libselw |
|
||||
Jonathan Wakely - bug in bec.file.h in 1.0.1 beta 104; request for Sun |
|
||||
compiler support; finding syslog bugs; finding big-endian gaffs; ACE + |
|
||||
UNIX makefiles (to appear in b188) |
|
||||
Lars Ivar Igesund - request for Trace explanations; request for Sun |
|
||||
compiler support |
|
||||
Sergey Nikulov - b64 bug reports & patches; UNIX compilation bug reports & |
|
||||
patches; FreeBSD compatibility |
|
||||
John Cook - Mac OS-X compilation problem (due to GCC being thick) |
|
||||
Juan Manuel Alvarez - missing implicit link headers; request for tutorials |
|
||||
Randy Freier - build questions |
|
||||
Maciej Kaniewski - Borland 5.9+ compatibility |
|
||||
Frank Audun Kvamtrø - request for extended back-end customisation |
|
||||
markitus82 - Borland compatibility |
|
||||
Jason Woodall - extended severity usage |
|
||||
Ali Sohanghpurwala - argument padding, FAQ |
|
||||
Derek Baikie - Intel 11 compilation issues |
|
||||
Jacobo Cabaleiro - thread-safety for be.file |
|
||||
jdt141 - GCC 4.2 trace example compile error |
|
||||
brandstaetter - Fedora build errors |
|
||||
Angel Tankson - enhancement requests for 2GB+ file support |
|
||||
John Corelli - be.N / fe.N enquiries, feature requests |
|
||||
wassime - contribution of custom front-end example |
|
||||
Skoobie Du - year+mon defect in date/time format specifiers in be.file |
|
||||
file name |
|
||||
Johan Franzén - reported unwanted conversion of integral argument to |
|
||||
CComBSTR / CString instance |
|
||||
itti83, mitchomtl - VC++10 compilation issues in test program(s); |
|
||||
|
|
||||
Contributions are welcomed. |
|
||||
|
|
||||
=============================== End of file ================================ |
|
15498
resources/3rdparty/pantheios-1.0.1-beta214/CHANGES.txt
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,586 +0,0 @@ |
|||||
pantheios - FAQ |
|
||||
=============== |
|
||||
|
|
||||
Updated: 27th December 2010 |
|
||||
|
|
||||
|
|
||||
|
|
||||
The FAQ list is under (constant) development. If you post a question on the |
|
||||
Tutorials forum (https://sourceforge.net/forum/forum.php?forum_id=647484) |
|
||||
it will be used to create one. |
|
||||
|
|
||||
FAQs: |
|
||||
===== |
|
||||
|
|
||||
Q1: "What happens if the Pantheios libraries fail to |
|
||||
initialise?" [2nd October 2006] |
|
||||
|
|
||||
A1: |
|
||||
The process will be terminated, via exit() (ExitProcess() on Windows) |
|
||||
|
|
||||
From 1.0.1 beta 4 onwards, library initialisation is also accompanied |
|
||||
by invocation of pantheios_onBailOut(), a fallback log function that is |
|
||||
used by the Core (and Front/Back-end(s)) to report on a failure to |
|
||||
initialise Pantheios. The output facilities are operating |
|
||||
system-dependent: |
|
||||
* on UNIX the bail-out message is written to syslog() and to |
|
||||
the console of the calling process (via fprintf()), and to |
|
||||
a local file "logging-bailout.txt" (appending if already |
|
||||
exists) |
|
||||
* on Windows the bail-out message is written to the debugger |
|
||||
(via OutputDebugString()), the console (if any) of the |
|
||||
calling process (via WriteFile()), to a local file |
|
||||
"logging-bailout.txt" (appending if already exists), and to |
|
||||
the Windows Event Log (under the source "logging-bailout"). |
|
||||
|
|
||||
Note: The Event Log messages will not be correctly formatted |
|
||||
(although their information will be accessible), unless |
|
||||
pantheios.COM is installed: The Windows bail-out |
|
||||
functionality piggy backs on the Event Log message resources |
|
||||
in pantheios.COM (version 1.0.1 beta 3 or later). |
|
||||
|
|
||||
|
|
||||
Q2: "What if I need more than 32 parameters?" |
|
||||
|
|
||||
A2: |
|
||||
You can regenerate the six automatically-generated files as follows: |
|
||||
- edit the scripts/make_hdrs.rb (Ruby) script |
|
||||
- change the NUM_PARAMS constant to the required value |
|
||||
- run the script from the scripts directory. You may have to change |
|
||||
file permissions of the automatically-generated files, if they're |
|
||||
read-only |
|
||||
|
|
||||
|
|
||||
Q3: "How do I represent a process Id?" [15th November 2007] |
|
||||
|
|
||||
A3: |
|
||||
By using the pantheios::processId inserter. |
|
||||
|
|
||||
#include <pantheios/inserters/ids.hpp> |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
pantheios::log_NOTICE("process id=", pantheios::processId); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
Q4: "What is 'Pure Pantheios'?" [15th November 2007] |
|
||||
|
|
||||
A4: |
|
||||
Pantheios is primarily a logging _API_ library. That is, it is explictly |
|
||||
designed to layer over the top of other, feature-rich, logging libraries. |
|
||||
Of course, it comes with several of its own transport mechanisms, known as |
|
||||
back-ends, but they are not part of 'Pure Pantheios'. |
|
||||
|
|
||||
Technically speaking, 'Pure Pantheios' consists only of: |
|
||||
|
|
||||
- The Application Layer |
|
||||
- The Core |
|
||||
|
|
||||
The Application Layer talks only to the Core. The Core talks to a |
|
||||
Front-End and a Back-End, which are, strictly, external to |
|
||||
'Pure Pantheios'. |
|
||||
|
|
||||
The Core talks to the Front-End via the following four functions, declared |
|
||||
in include/pantheios/frontend.h: |
|
||||
|
|
||||
- pantheios_fe_init() |
|
||||
initialises the front-end; called at most once per process |
|
||||
- pantheios_fe_uninit() |
|
||||
uninitialises the front-end; called at most once per process |
|
||||
- pantheios_fe_getProcessIdentity() |
|
||||
returns a C-style string that names the current process, e.g. |
|
||||
"logdaemon"; called at most once per process |
|
||||
- pantheios_fe_isSeverityLogged() |
|
||||
returns an integer to indicate whether a log statement of a given |
|
||||
severity level is to be emitted to the Back-End; called each time |
|
||||
a statement is processed |
|
||||
|
|
||||
These functions must be implemented by any Front-End linked to the |
|
||||
application/shared object. |
|
||||
|
|
||||
The Core talks to the Back-End via the following three functions, declared |
|
||||
in include/pantheios/backend.h: |
|
||||
|
|
||||
- pantheios_be_init() |
|
||||
initialises the back-end; called at most once per process |
|
||||
- pantheios_be_uninit() |
|
||||
uninitialises the back-end; called at most once per process |
|
||||
- pantheios_be_logEntry() |
|
||||
called to emit each statement |
|
||||
|
|
||||
These functions must be implemented by any Back-End linked to the |
|
||||
application/shared object. |
|
||||
|
|
||||
Pantheios comes with a number of stock Front-End and Back-end libraries, |
|
||||
for the convenience of users. Furthermore, a number of Inserter Classes |
|
||||
are provided which supplement the Application Layer, including: |
|
||||
|
|
||||
- pantheios::integer - inserts an integer argument |
|
||||
- pantheios::real |
|
||||
- pantheios::pointer |
|
||||
- pantheios::character |
|
||||
- pantheios::args |
|
||||
- pantheios::blob |
|
||||
- pantheios::b64 |
|
||||
- pantheios::processId |
|
||||
- pantheios::threadId |
|
||||
|
|
||||
Importantly, instances of these Inserters do not perform any conversions |
|
||||
(or allocate memory) unless the given statement they are in is to be |
|
||||
emitted (as determined by pantheios_fe_isSeverityLogged()). This is one of |
|
||||
many ways in which Pantheios provides extremely high-levels of |
|
||||
performance. |
|
||||
|
|
||||
|
|
||||
Q5: "Is Pantheios thread-safe?" [19th November 2007] |
|
||||
|
|
||||
A5: |
|
||||
The short answer is: Yes. |
|
||||
|
|
||||
The long answer is: |
|
||||
|
|
||||
The Core is thread-safe. The Core initialisation/uninitialisation |
|
||||
functions are reference-counted. On architectures with atomic integer |
|
||||
operations *all* calls to pantheios_init() are thread-safe. On other |
|
||||
architectures *all* calls to pantheios_init() except the first are |
|
||||
thread-safe. |
|
||||
|
|
||||
The Application is layer is thread-safe simply because there is no |
|
||||
shared state between threads in any application layer components. |
|
||||
|
|
||||
As for the Front-end and Back-ends, the answer is: It depends. |
|
||||
|
|
||||
The Front-end functions pantheios_fe_init(), pantheios_fe_uninit() and |
|
||||
pantheios_fe_getProcessIdentity() are called at most once per-process |
|
||||
during the initialisation phase. Therefore, they do not need to be |
|
||||
thread-safe. The Front-end function pantheios_fe_isSeverityLogged() is |
|
||||
called every time a statement is processed, to evaluate whether the |
|
||||
statement should be emitted to the back-end(s). Thus, this function |
|
||||
must be thread-safe. |
|
||||
|
|
||||
The Back-end functions pantheios_be_init(), and pantheios_be_uninit() |
|
||||
are called at most once per-process during the initialisation phase. |
|
||||
Therefore, they do not need to be thread-safe. The Back-end function |
|
||||
pantheios_be_logEntry() is called every time a statement is to be |
|
||||
emitted. It must be thread-safe. |
|
||||
|
|
||||
All stock Front-end and Back-end implementations are thread-safe. |
|
||||
|
|
||||
If you write custom Front-end and/or Back-end, you must ensure that |
|
||||
the functions pantheios_fe_isSeverityLogged() and pantheios_be_logEntry() |
|
||||
are thread-safe. If you do so, your use of Pantheios will be entirely |
|
||||
thread-safe. |
|
||||
|
|
||||
|
|
||||
Q6: "How do I alter the number of parameters in the Application Layer?" [25th November 2007] |
|
||||
|
|
||||
A6: |
|
||||
There are two ways. |
|
||||
|
|
||||
First, if you wish to reduce the number of parameters in the Application |
|
||||
Layer - presumably to speed compilation when you don't need the full |
|
||||
range of parameters - then you can simply #define the pre-processor |
|
||||
symbol PANTHEIOS_APPL_PARAMS_LIMIT (introduced in 1.0.1 beta 60) to a |
|
||||
number between 1 and 32. |
|
||||
|
|
||||
Second, if you wish to increase the number of parameters available in |
|
||||
functions in the N-ary Function Templates of the Application Layer, you |
|
||||
must re-generate the Application Layer headers using the make_hdrs.rb |
|
||||
Ruby script in the script directory. However, we would advise that if |
|
||||
you are writing application code that needs to pass more than 32 |
|
||||
parameters to Pantheios, you are unlikely to be writing transparent |
|
||||
code, one of the design requirements of Pantheios. |
|
||||
|
|
||||
|
|
||||
Q7: "Why do the back-end(s) have to be specified at link-time?" [3rd January 2008] |
|
||||
|
|
||||
A7: |
|
||||
The short answer is: Because Pantheios is initialised automatically, |
|
||||
and before main() is called. (This is actually done by using the Schwarz |
|
||||
counters found in include/pantheios/internal/initialiser.hpp, included by |
|
||||
include/pantheios/pantheios.hpp unless in a DLL context or you #define |
|
||||
PANTHEIOS_NO_AUTO_INIT) |
|
||||
|
|
||||
This is done to allow any piece of code in any part of the system to be |
|
||||
able to log any conditions that may be necessary. If the process could not |
|
||||
log before main() started, this might not be possible; indeed, how would |
|
||||
you log a failure in another pre-main sub-system? |
|
||||
|
|
||||
The reason why this question comes up a lot is, of course, because users |
|
||||
quite reasonably want to be able to specify logging options, at the start |
|
||||
of main(). |
|
||||
|
|
||||
The best approach to cater for both requirements is as follows: |
|
||||
1. Link to be.N |
|
||||
2. Define the PAN_BE_N_BACKEND_LIST array (see the documentation on be.N) |
|
||||
for an explanation of how this works. Make sure to include an entry |
|
||||
for a back-end that does not need any configuration, e.g. be.syslog. |
|
||||
Then also include an entry for a back-end that provides run-time |
|
||||
customisation, say, be.YourConfigurableBackEnd. |
|
||||
3. Customise be.YourConfigurableBackEnd inside main(). If the program |
|
||||
does not make it as far as main(), at least you will have had some |
|
||||
logging output go to Syslog, via be.syslog. |
|
||||
|
|
||||
NOTE: A future version of Pantheios will include be.loader, which will |
|
||||
allow you to load and configure back-ends at runtime, based on |
|
||||
configuration file(s) |
|
||||
|
|
||||
|
|
||||
Q8: "I get linker errors with GCC, even though I'm specifying the core, |
|
||||
front-end and back-end libraries. I've used nm, and the core library |
|
||||
says it contains the missing symbols. What gives?" [28th January 2008] |
|
||||
|
|
||||
A8: |
|
||||
What's going on here is that GCC's linker reads symbols in a |
|
||||
left-to-right manner. The Pantheios initialisation functions - |
|
||||
pantheios_init(), pantheios_uninit() - must be elicited from the core |
|
||||
library, which is listed first in the libraries list. They then require |
|
||||
symbols from the back-end and front-end libraries, which come next in |
|
||||
the libraries list. They, in turn, require symbols from the core, which |
|
||||
must therefore be listed again, at the end of the libraries list. The |
|
||||
GCC makefiles included in the distribution do this, and can be used as |
|
||||
templates for how to do it in your own projects. |
|
||||
|
|
||||
|
|
||||
Q9: "Does Pantheios provide a configuration that yields a logged message |
|
||||
containing the containing function, equivalent to: |
|
||||
|
|
||||
log(informational, __FUNCTION__, ": my message"); |
|
||||
|
|
||||
without having to write that (or some wrapper that checks for compiler |
|
||||
support)." [15th March 2008] |
|
||||
|
|
||||
A9: |
|
||||
You need to #define PANTHEIOS_TRACE_PREFIX to what you want. By default |
|
||||
it is '__FILE__ "(" PANTHEIOS_STRINGIZE(__LINE__) "): "', which gives the |
|
||||
format '<file>(<line>): ' |
|
||||
|
|
||||
To include the function, lets says you want it to have the format |
|
||||
'<file>(<line>): <func>: '. To achieve this you'd define it as follows: |
|
||||
|
|
||||
#include <pantheios/pantheios.h> |
|
||||
#define PANTHEIOS_TRACE_PREFIX __FILE__ " " PANTHEIOS_STRINGIZE(__LINE__) ": " __FUNCTION__ ": " |
|
||||
#include <pantheios/trace.h> |
|
||||
|
|
||||
Note that the definition *must* come before the inclusion of |
|
||||
pantheios/trace.h. Therefore, a safer way of doing this is as follows: |
|
||||
|
|
||||
/* File: myPantheiosRootHeader.h */ |
|
||||
#include <pantheios/pantheios.h> |
|
||||
|
|
||||
#ifdef PANTHEIOS_INCL_PANTHEIOS_H_TRACE |
|
||||
# error pantheios/trace.h must not be included before myPantheiosRootHeader.h |
|
||||
#endif /* PANTHEIOS_INCL_PANTHEIOS_H_TRACE */ |
|
||||
|
|
||||
#define PANTHEIOS_TRACE_PREFIX __FILE__ " " PANTHEIOS_STRINGIZE(__LINE__) ": " __FUNCTION__ ": " |
|
||||
#include <pantheios/trace.h> |
|
||||
|
|
||||
|
|
||||
Q10: "Do you hand code the makefiles?" [18th June 2008] |
|
||||
|
|
||||
A10: |
|
||||
No, although it sometimes feels a bit like that. I use a proprietary |
|
||||
tool, tmpl2make, that takes a makefile template and a tools |
|
||||
configuration file, and runs a merge over them. The makefile template |
|
||||
language has IFDEF and FOREACH, but it's still a non-trivial effort to |
|
||||
start a new one, which is why I tend to copy them from established |
|
||||
projects (such as Pantheios) to new ones (flecxx, FastFormat). |
|
||||
|
|
||||
|
|
||||
Q11: "Have you considered CMake?" [18th June 2008] |
|
||||
|
|
||||
A11: |
|
||||
Yes, and it's on the roadmap for post 1.0 things to do (along with |
|
||||
project/solution files for XCode, Code::Blocks(), and so on). However, |
|
||||
it will always be the case that the raw makefiles will be available for |
|
||||
maximum portability. |
|
||||
|
|
||||
|
|
||||
Q12: "Which compilers support implicit linking with Pantheios?" [16th October 2008] |
|
||||
|
|
||||
A12: |
|
||||
Borland, Metrowerks CodeWarrior (on Windows), Intel (on Windows) and |
|
||||
Visual C++. |
|
||||
|
|
||||
|
|
||||
Q13: "How do I link when using compilers that don't support implicit linking?" [16th October 2008] |
|
||||
|
|
||||
A13: |
|
||||
You must use explicit linking. |
|
||||
|
|
||||
For example, say you're using GCC on UNIX, and wishing to use the |
|
||||
fe.simple front-end and along with the be.fprintf back-end. The |
|
||||
libraries you link to depend on the configuration. |
|
||||
|
|
||||
For single-threaded & debug, you need to link to: |
|
||||
|
|
||||
pantheios.1.core.gcc40.debug.a |
|
||||
pantheios.1.util.gcc40.debug.a |
|
||||
pantheios.1.fe.simple.gcc40.debug.a |
|
||||
pantheios.1.be.fprintf.gcc40.debug.a |
|
||||
pantheios.1.bec.fprintf.gcc40.debug.a |
|
||||
|
|
||||
The command-line will look like: |
|
||||
|
|
||||
g++ -Dunix -I$PANTHEIOS_ROOT/include -I$STLSOFT/include \ |
|
||||
-L$PANTHEIOS_ROOT/lib \ |
|
||||
-lpantheios.1.core.gcc40 \ |
|
||||
-lpantheios.1.fe.simple.gcc40 \ |
|
||||
-lpantheios.1.be.fprintf.gcc40 \ |
|
||||
-lpantheios.1.bec.fprintf.gcc40 \ |
|
||||
-lpantheios.1.core.gcc40 \ |
|
||||
-lpantheios.1.util.gcc40 \ |
|
||||
my_program.cpp |
|
||||
|
|
||||
Note the double specification of the pantheios.1.core.gcc40.debug.a |
|
||||
library. This is required with GCC because of the way it handles |
|
||||
library lookup and interpositioning: basically the core depends on |
|
||||
symbols defined in the front-end and back-end(s), and they in turn |
|
||||
depend on some symbols defined in the core, so it has to be specified |
|
||||
before and after them |
|
||||
|
|
||||
|
|
||||
Q14: "I'm using the Trace API, but it fails to print the function. Why?" [6th May 2009] |
|
||||
|
|
||||
A14: |
|
||||
You are using a compiler that does not support the __FUNCTION__ macro. At |
|
||||
the current time (Pantheios 1.0.1-beta 186, STLSoft 1.9.81), the compilers |
|
||||
known to support it are: |
|
||||
|
|
||||
* Comeau |
|
||||
* Digital Mars (8.50+) |
|
||||
* GCC (3+) |
|
||||
* Intel C/C++ (7+) |
|
||||
* Metrowerks CodeWarrior (8+) |
|
||||
* Visual C++ (7.0+) |
|
||||
* Watcom C/C++ (OpenWatcom 1.4+) |
|
||||
* SunPro 5.9 (by defining __FUNCTION__ in terms of the compiler-specific |
|
||||
__func__) |
|
||||
|
|
||||
Those known to not support it are: |
|
||||
|
|
||||
* Borland (all versions 5.5 - 6.1) |
|
||||
* VectorC |
|
||||
|
|
||||
If your compiler does not support it, then the only avenue available if |
|
||||
you absolutely must have it, is to #define it in each function, as in: |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
#define __FUNCTION__ main |
|
||||
|
|
||||
PANTHEIOS_TRACE_PRINTF(pantheios::notice, "a string '%s' and a number %d", "<abc>", 42); |
|
||||
|
|
||||
. . . |
|
||||
|
|
||||
You'll also need to "persuade" the trace macro you wish to use that it can |
|
||||
actually proceed. In the example.cpp.tracing.with_function example, the |
|
||||
PANTHEIOS_TRACE_PREFIX macro is defined as follows: |
|
||||
|
|
||||
// From examples/cpp/example.cpp.tracing.with_function/example.cpp.tracing.with_function.cpp |
|
||||
|
|
||||
#ifdef STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT |
|
||||
# define PANTHEIOS_TRACE_PREFIX __FILE__ " " PANTHEIOS_STRINGIZE(__LINE__) ": " __FUNCTION__ ": " |
|
||||
#endif /* STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT */ |
|
||||
|
|
||||
If you're using a compiler that does not support __FUNCTION__, and for |
|
||||
which STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT is not defined, you would remove |
|
||||
the #ifdef and #endif lines. |
|
||||
|
|
||||
If you wish to ensure that program remains compatible with compilers that |
|
||||
do support __FUNCTION__, then you would add a guard around the #define, as |
|
||||
in: |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
#ifndef STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT |
|
||||
# define __FUNCTION__ "main" |
|
||||
#endif /* !STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT */ |
|
||||
|
|
||||
. . . |
|
||||
|
|
||||
|
|
||||
Q15: "I have numerous back ends defined, and am trying to pass the |
|
||||
log message to a specific backend for a specific log level, like this: |
|
||||
|
|
||||
log_message( int logLevel, int log_BE, const char* message) |
|
||||
{ |
|
||||
pantheios::log(pantheios::critical(log_BE), "log this"); |
|
||||
} |
|
||||
|
|
||||
but change pantheios::critical() to be based on the logLevel, such as |
|
||||
PANTHEIOS_SEV_DEBUG or similar. How is this done?" [21st May 2009] |
|
||||
|
|
||||
A15: |
|
||||
Use PANTHEIOS_MAKE_EXTENDED_SEVERITY() to define severity+extended_info |
|
||||
on the fly, as in: |
|
||||
|
|
||||
// C example |
|
||||
pantheios_logprintf( |
|
||||
PANTHEIOS_MAKE_EXTENDED_SEVERITY(PANTHEIOS_SEV_NOTICE, 10), "hello"); |
|
||||
|
|
||||
and: |
|
||||
|
|
||||
// C++ example |
|
||||
pantheios::log( |
|
||||
PANTHEIOS_MAKE_EXTENDED_SEVERITY(PANTHEIOS_SEV_NOTICE, 10), "hello"); |
|
||||
|
|
||||
You can #define your own codebase-specific macro that's more |
|
||||
succinct, e.g: |
|
||||
|
|
||||
#define ACME_SEV_X(sev, x) PANTHEIOS_MAKE_EXTENDED_SEVERITY(sev, x) |
|
||||
|
|
||||
and use it as: |
|
||||
|
|
||||
log_message( int logLevel, int log_BE, const char* message) |
|
||||
{ |
|
||||
pantheios::log(ACME_SEV_X(logLevel, log_BE), "log this"); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
Q16: "Currently the logging format is something like: |
|
||||
|
|
||||
[Project.5844, 5/20/2009 1:58:37.006 PM; Debug ]: logging message |
|
||||
|
|
||||
Is there any way to modify the format of this?" [21st May 2009] |
|
||||
|
|
||||
A16: |
|
||||
Yes, in a limited way, via the callback mechanism. Link to a callback |
|
||||
version of a particular back-end library and implement the back-end |
|
||||
callback initialisation function. |
|
||||
|
|
||||
This allows you to turn on/off various format prefix fields |
|
||||
|
|
||||
[process identity, thread identity, date, time, severity, etc.] |
|
||||
|
|
||||
For example, the non-callback version of the be.fprintf back-end is |
|
||||
defined in the bec.fprintf library (e.g. |
|
||||
pantheios.1.bec.fprintf.vc9.lib), whereas the callback version is defined |
|
||||
in the bec.fprintf.WithCallback library (e.g. |
|
||||
pantheios.1.bec.fprintf.WithCallback.vc6.lib). |
|
||||
|
|
||||
The callback initialisation function for be.fprintf is |
|
||||
pantheios_be_fprintf_getAppInit(). You implement this function and |
|
||||
customise the behaviour of be.fprintf via the flags member of |
|
||||
pan_be_fprintf_init_t. |
|
||||
|
|
||||
Note that the only reordering possible is to put the whole prefix, |
|
||||
en-bloc, to the end (as a suffix). For more sophisticated ordering, the |
|
||||
only option currently available is to write your own back-end, or engage |
|
||||
the services of Synesis Software (http://www.synesis.com.au/contact.html) |
|
||||
to assist you. |
|
||||
|
|
||||
|
|
||||
Q17: "I'm going through and converting a lot of printf statements to |
|
||||
pantheios::log statements and I'm unsure of how to best retain the pretty |
|
||||
formatting aspects. For types with explicit inserters (real, int, etc.) |
|
||||
it seems I can use the width and fmt parameters to log prettily, but its |
|
||||
unclear how to space strings. |
|
||||
|
|
||||
For example how should I translate: |
|
||||
|
|
||||
printf("Name: %40s", name.c_str()); |
|
||||
|
|
||||
" [24th June 2009] |
|
||||
|
|
||||
A17: |
|
||||
As of 1.0.1 beta 189, the padding inserter pantheios::pad() can be used |
|
||||
to provide a string of spaces of the necessary size to pad a variable of |
|
||||
arbitrary type, as in: |
|
||||
|
|
||||
#include <pantheios/inserters/pad.hpp> // for pantheios::pad |
|
||||
|
|
||||
|
|
||||
printf("Name: %40s.\n", name.c_str()); |
|
||||
|
|
||||
pantheios::log_NOTICE("Name: ", PANTHEIOS_LPAD(name, 40), "."); |
|
||||
|
|
||||
The inserter is used via the PANTHEIOS_LPAD(), which inserts pad spaces |
|
||||
to the left of the variable, and PANTHEIOS_RPAD(), which inserts pad |
|
||||
spaces to the right. |
|
||||
|
|
||||
|
|
||||
Q18: "I've written a custom front-end to work with be.N, but the backendId |
|
||||
is always 0 in pantheios_fe_isSeverityLogged(), and nothing gets logged!" |
|
||||
|
|
||||
A18: |
|
||||
pantheios_fe_isSeverityLogged() is always called first by the Application |
|
||||
Layer, to determine whether a log statement at the given severity level |
|
||||
will be logged; If not, nothing needs to be converted. In this invocation |
|
||||
the backendId parameter will be 0 (aka PANTHEIOS_BEID_ALL), meaning "does |
|
||||
anything need to be logged?" |
|
||||
|
|
||||
Multiplexing back-ends (e.g. be.N) also call pantheios_fe_isSeverityLogged() |
|
||||
to determine whether a specific back-end is interested in the given log |
|
||||
statement (based on its severity level). |
|
||||
|
|
||||
So, if you are writing a custom front-end, you must handle both cases: 0 |
|
||||
for "any back-ends?", and specific non-0 values (your specific back-end |
|
||||
identifiers) representing your specific back-ends. The scratch test |
|
||||
program test.scratch.be.N.with.custom.fe illustrates how this is to done. |
|
||||
Its definition of pantheios_fe_isSeverityLogged() is as follows: |
|
||||
|
|
||||
PANTHEIOS_CALL(int) pantheios_fe_isSeverityLogged(void*, int severity, int beid) |
|
||||
{ |
|
||||
switch(beid) |
|
||||
{ |
|
||||
// Must handle PANTHEIOS_BEID_ALL, as that's the Application Layer's |
|
||||
// (initial) enquiry as to whether anything should be logged at all |
|
||||
case PANTHEIOS_BEID_ALL: |
|
||||
#if 0 |
|
||||
// The inefficient way to do this is to just 'return true' |
|
||||
return true; |
|
||||
#else /* ? 0 */ |
|
||||
// The efficient (but complicated) way to do this is to see if |
|
||||
// *any* back-end wants output, in which case we say yes |
|
||||
return severity <= iCeilingMain || |
|
||||
severity <= iCeilingConsole || |
|
||||
severity <= iCeilingError; |
|
||||
#endif /* 0 */ |
|
||||
|
|
||||
// Now handle each specified back-end, which will come from be.N |
|
||||
// multiplexing the output(s) |
|
||||
|
|
||||
case WG_LOG_FILE_ID: |
|
||||
return severity <= iCeilingMain; |
|
||||
case WG_LOG_CONSOLE_ID: |
|
||||
return severity <= iCeilingConsole; |
|
||||
case WG_LOG_FILE_ERROR_ID: |
|
||||
return severity <= iCeilingError; |
|
||||
|
|
||||
// Don't know about anything else |
|
||||
default: |
|
||||
PANTHEIOS_CONTRACT_ENFORCE_UNEXPECTED_CONDITION_API("unexpected back-end identifier"); |
|
||||
return false; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
Q19: "My project requires that I use Microsoft Visual C++'s /Zc:wchar_t- |
|
||||
option, which prevents wchar_t from being a built-in type, instead |
|
||||
being just a typedef to 'unsigned short'. When I try to link with |
|
||||
Pantheios I get link errors, such as: |
|
||||
|
|
||||
1>Zc.wchar_t.test.obj : error LNK2019: unresolved external symbol "public: __thiscall pantheios::args::args(int,unsigned short const * const *,int,unsigned short const *)" (??0args@pantheios@@QAE@HPBQBGHPBG@Z) referenced in function _wmain |
|
||||
1>Zc.wchar_t.test.obj : error LNK2019: unresolved external symbol "public: unsigned short const * __thiscall pantheios::args::data(void)const " (?data@args@pantheios@@QBEPBGXZ) referenced in function "unsigned short const * __cdecl pantheios::shims::c_str_data_w(class pantheios::args const &)" (?c_str_data_w@shims@pantheios@@YAPBGABVargs@2@@Z) |
|
||||
1>Zc.wchar_t.test.obj : error LNK2019: unresolved external symbol "public: unsigned short const * __thiscall pantheios::integer::data(void)const " (?data@integer@pantheios@@QBEPBGXZ) referenced in function "unsigned short const * __cdecl pantheios::shims::c_str_data_w(class pantheios::integer const &)" (?c_str_data_w@shims@pantheios@@YAPBGABVinteger@2@@Z) |
|
||||
|
|
||||
How can I get Pantheios to define wchar_t in the same way without |
|
||||
hacking the makefile? |
|
||||
" |
|
||||
|
|
||||
A19: |
|
||||
You have to link against a version of Pantheios compiled with the same |
|
||||
compiler flag. This can be achieved by setting the CUSTOM_DEFS make macro |
|
||||
as follows: |
|
||||
|
|
||||
> nmake CUSTOM_DEFS="-Zc:wchar_t-" build |
|
||||
|
|
||||
You will then be able to link to your program. |
|
||||
|
|
||||
NOTE: You will need to ensure that other code that relies on Pantheios and |
|
||||
that was not compiled with -Zc:wchar_t- will see another, uncustomised, |
|
||||
version, otherwise you'll have the same linking problem, but in reverse. |
|
||||
|
|
||||
=============================== End of file ================================ |
|
1637
resources/3rdparty/pantheios-1.0.1-beta214/HISTORY.txt
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,117 +0,0 @@ |
|||||
Pantheios - How You Can Help |
|
||||
============================ |
|
||||
|
|
||||
Updated: 26th November 2010 |
|
||||
|
|
||||
|
|
||||
|
|
||||
There are several ways in which you can help the Pantheios project: |
|
||||
|
|
||||
1. Defect reports |
|
||||
2. Feature requests |
|
||||
3. Submit your own extensions: inserters, back-ends, front-ends |
|
||||
4. Sponsor development |
|
||||
5. Write articles, blog-posts about your experiences |
|
||||
6. Help flesh out the Wikipedia page for Pantheios |
|
||||
|
|
||||
|
|
||||
1. Defect reports |
|
||||
----------------- |
|
||||
|
|
||||
A diagnostic logging library exists to help locate and identify defects in |
|
||||
applications/components. An obvious consequence of this principle is that a |
|
||||
diagnostic logging library should not itself be the source of faults. |
|
||||
|
|
||||
Consequently, we're very keen to hear of any problems you have in building |
|
||||
and, especially, in using the library. |
|
||||
|
|
||||
If you're unsure whether your issue is a genuine defect in the library, we |
|
||||
ask that you post a description of your problem on the project Help Forum, |
|
||||
located at: |
|
||||
|
|
||||
http://sourceforge.net/projects/pantheios/forums/forum/475314 |
|
||||
|
|
||||
If you're sure that your issue is a genuine defect, please feel free to |
|
||||
submit an item in the project Bug Tracker, located at: |
|
||||
|
|
||||
http://sourceforge.net/tracker/?group_id=141831&atid=750757 |
|
||||
|
|
||||
In either case, please help us to help you by submitting as much information |
|
||||
about the problem as you think is relevant, including: |
|
||||
|
|
||||
* the compiler you're using |
|
||||
* the architecture and operating system you're targeting |
|
||||
* the version of Pantheios |
|
||||
* the version of STLSoft |
|
||||
* the version of other 3rd-party libraries, such as Boost, Loki, ... |
|
||||
* whether you're building using the makefiles or via an IDE |
|
||||
* a section of the build output, including the warnings/errors involved |
|
||||
|
|
||||
|
|
||||
2. Feature requests |
|
||||
------------------- |
|
||||
|
|
||||
Pantheios is a living library, and we are not so foolish as to think that |
|
||||
we've thought of all the ways in which C++ diagnostic logging can be |
|
||||
improved. |
|
||||
|
|
||||
If there are features that you think would enhance the library, please feel |
|
||||
free to share your ideas. |
|
||||
|
|
||||
If you're precisely sure what you need, please feel free to start a |
|
||||
conversation on the Open Discussion Forum, located at: |
|
||||
|
|
||||
http://sourceforge.net/projects/pantheios/forums/forum/475313 |
|
||||
|
|
||||
If you're clear of what you need, please feel free to submit an item in the |
|
||||
project Feature Request Tracker, located at: |
|
||||
|
|
||||
http://sourceforge.net/tracker/?group_id=141831&atid=750760 |
|
||||
|
|
||||
NOTE: Synesis Software provides commercial customisations of Pantheios, |
|
||||
including custom front-ends and back-ends, custom severity levels, and much |
|
||||
more. For such advanced uses, contact Synesis Software via their website |
|
||||
at http://www.synesis.com.au/contact.html |
|
||||
|
|
||||
|
|
||||
3. Submit your own extensions: inserters, back-ends, front-ends |
|
||||
--------------------------------------------------------------- |
|
||||
|
|
||||
If you have developed your own inserters, back-ends, front-ends, and wish to |
|
||||
contribute them back to the project so others can benefit from your work, |
|
||||
please get in contact at via the Open Discussion Forum, located at: |
|
||||
|
|
||||
http://sourceforge.net/projects/pantheios/forums/forum/475313 |
|
||||
|
|
||||
|
|
||||
4. Sponsor development |
|
||||
---------------------- |
|
||||
|
|
||||
If you value the diligence and effort that's gone into bringing you this |
|
||||
production-quality software, please make a donation to the project, via: |
|
||||
|
|
||||
http://sourceforge.net/project/project_donations.php?group_id=141831 |
|
||||
|
|
||||
|
|
||||
5. Write articles, blog-posts about your experiences |
|
||||
---------------------------------------------------- |
|
||||
|
|
||||
If you've written articles or blogged about Pantheios, let us know and we'll |
|
||||
list them on the website, at: |
|
||||
|
|
||||
http://www.pantheios.org/tutorials.html |
|
||||
|
|
||||
If you haven't, please consider doing so. |
|
||||
|
|
||||
|
|
||||
6. Help flesh out the Wikipedia page for Pantheios |
|
||||
-------------------------------------------------- |
|
||||
|
|
||||
Pantheios is a very popular logging library. Despite that, the powers that |
|
||||
be at Wikipedia have deemed that it is not notable. If you disagree with |
|
||||
that, please update the Pantheios Wikipedia page at: |
|
||||
|
|
||||
http://en.wikipedia.org/wiki/Pantheios |
|
||||
|
|
||||
|
|
||||
=============================== End of file ================================ |
|
@ -1,43 +0,0 @@ |
|||||
pantheios - Install |
|
||||
==================== |
|
||||
|
|
||||
Updated: 7th August 2012 |
|
||||
|
|
||||
|
|
||||
The following steps are required to install Pantheios: |
|
||||
|
|
||||
1. Download the latest distribution of Pantheios, from |
|
||||
http://pantheios.org/ |
|
||||
|
|
||||
2. Unzip it to a directory of your choice, e.g c:\3pty\pantheios-1.0.1 |
|
||||
|
|
||||
3. Define an environment variable PANTHEIOS_ROOT, whose |
|
||||
value is the directory in which you unzipped |
|
||||
it, e.g. PANTHEIOS_ROOT=c:\3pty\pantheios-1.0.1 |
|
||||
|
|
||||
4. Download the latest distribution of STLSoft, from http://stlsoft.org/ |
|
||||
|
|
||||
5. Unzip it to a directory of your choice, e.g c:\3pty\stlsoft-1.9.115 |
|
||||
|
|
||||
6. Define an environment variable STLSOFT, whose value is the directory |
|
||||
in which you unzipped it, e.g. STLSOFT=c:\3pty\stlsoft-1.9.115 |
|
||||
|
|
||||
7. Open a command shell in the appropriate directory that matches your |
|
||||
compiler: |
|
||||
|
|
||||
* if you're compiling with Visual C++ 7.1 then cd to build/vc71 |
|
||||
* if you're compiling for UNIX with GCC 4.2, then cd |
|
||||
to build/gcc42.unix |
|
||||
* if you're compiling for Win-x64 with Visual C++ 9, then cd |
|
||||
to build/vc9.x64 |
|
||||
|
|
||||
8. Build using make: |
|
||||
|
|
||||
* to build the Pantheios core libraries: "make build.libs.core" |
|
||||
* to build all libraries, examples and test: "make build" |
|
||||
* to build and run unit/component tests: "make test" |
|
||||
|
|
||||
NOTE: Pantheios depends on the (header-only) STLSoft libraries - version |
|
||||
1.9.115 or later - available from http://www.stlsoft.org/. |
|
||||
|
|
||||
=============================== End of file ================================ |
|
@ -1,21 +0,0 @@ |
|||||
pantheios - Known Issues |
|
||||
======================== |
|
||||
|
|
||||
Updated: 7th August 2012 |
|
||||
|
|
||||
|
|
||||
|
|
||||
Pantheios 1.0.1 Beta 214 Known Issues: |
|
||||
-------------------------------------- |
|
||||
|
|
||||
<none> |
|
||||
|
|
||||
|
|
||||
|
|
||||
Pantheios 1.0.1 Beta 214 Suspected Issues: |
|
||||
------------------------------------------ |
|
||||
|
|
||||
<none> |
|
||||
|
|
||||
|
|
||||
=============================== End of file ================================ |
|
@ -1,38 +0,0 @@ |
|||||
pantheios - License |
|
||||
=================== |
|
||||
|
|
||||
Updated: 13th February 2009 |
|
||||
|
|
||||
|
|
||||
============================================================================ |
|
||||
|
|
||||
|
|
||||
Pantheios and STLSoft use the simplified BSD-form license, as follows: |
|
||||
|
|
||||
* 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(s) of Matthew Wilson and Synesis Software nor the |
|
||||
* names of any 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. |
|
||||
|
|
||||
=============================== End of file ================================ |
|
||||
|
|
@ -1,538 +0,0 @@ |
|||||
pantheios - News |
|
||||
================ |
|
||||
|
|
||||
Updated: 7th August 2012 |
|
||||
|
|
||||
|
|
||||
|
|
||||
News: |
|
||||
|
|
||||
7th Aug 2012 - Pantheios 1.0.1 beta 214 released |
|
||||
|
|
||||
6th Dec 2011 - Pantheios 1.0.1 beta 213 released |
|
||||
|
|
||||
13th Aug 2011 - Pantheios 1.0.1 beta 212 released |
|
||||
|
|
||||
1st Feb 2011 - Pantheios 1.0.1 beta 211 released |
|
||||
|
|
||||
10th Jan 2011 - Pantheios 1.0.1 beta 210 released |
|
||||
|
|
||||
8th Jan 2011 - Pantheios::Extras::DiagUtil 0.1.1 alpha 1 released |
|
||||
|
|
||||
7th Jan 2011 - Pantheios::Extras::Main 0.1.1 alpha 1 released |
|
||||
|
|
||||
6th Jan 2011 - Pantheios 1.0.1 beta 209 released |
|
||||
|
|
||||
4th Jan 2011 - Pantheios 1.0.1 beta 208 released |
|
||||
|
|
||||
27th Dec 2010 - Pantheios 1.0.1 beta 207 released |
|
||||
|
|
||||
23rd Dec 2010 - Pantheios.COM 1.0.1 beta 31 released |
|
||||
|
|
||||
21st Dec 2010 - Pantheios 1.0.1 beta 206 released |
|
||||
|
|
||||
11th Dec 2010 - Pantheios 1.0.1 beta 205 released |
|
||||
|
|
||||
7th Dec 2010 - Pantheios 1.0.1 beta 204 released |
|
||||
|
|
||||
26th Nov 2010 - Pantheios 1.0.1 beta 203 released |
|
||||
|
|
||||
23rd Nov 2010 - Pantheios 1.0.1 beta 202 released |
|
||||
|
|
||||
19th Nov 2010 - Pantheios 1.0.1 beta 201 released |
|
||||
|
|
||||
15th Nov 2010 - Pantheios 1.0.1 beta 200 released |
|
||||
|
|
||||
10th Nov 2010 - Pantheios 1.0.1 beta 199 released |
|
||||
|
|
||||
8th Nov 2010 - Pantheios 1.0.1 beta 198 released |
|
||||
|
|
||||
18th Oct 2010 - Pantheios 1.0.1 beta 197 released |
|
||||
|
|
||||
4th Apr 2010 - Pantheios 1.0.1 beta 196 released |
|
||||
|
|
||||
5th Mar 2010 - Pantheios 1.0.1 beta 195 released |
|
||||
|
|
||||
15th Feb 2010 - Pantheios 1.0.1 beta 194 released |
|
||||
|
|
||||
24th Jul 2009 - Pantheios 1.0.1 beta 193 released |
|
||||
|
|
||||
8th Jul 2009 - Pantheios 1.0.1 beta 192 released |
|
||||
|
|
||||
4th Jul 2009 - Pantheios 1.0.1 beta 191 released |
|
||||
|
|
||||
3rd Jul 2009 - Pantheios 1.0.1 beta 190 released |
|
||||
|
|
||||
29th Jun 2009 - Pantheios 1.0.1 beta 189 released |
|
||||
|
|
||||
21st May 2009 - Pantheios 1.0.1 beta 188 released |
|
||||
|
|
||||
15th May 2009 - Pantheios 1.0.1 beta 187 released |
|
||||
|
|
||||
8th May 2009 - Pantheios 1.0.1 beta 186 released |
|
||||
|
|
||||
17th Apr 2009 - Pantheios 1.0.1 beta 185 released |
|
||||
|
|
||||
16th Apr 2009 - Pantheios 1.0.1 beta 184 released |
|
||||
|
|
||||
16th Feb 2009 - Pantheios 1.0.1 beta 183 released |
|
||||
|
|
||||
15th Feb 2009 - Pantheios 1.0.1 beta 182 released |
|
||||
|
|
||||
13th Feb 2009 - Pantheios 1.0.1 beta 181 released |
|
||||
|
|
||||
3rd Feb 2009 - Pantheios 1.0.1 beta 180 released |
|
||||
|
|
||||
1st Feb 2009 - Pantheios 1.0.1 beta 179 released |
|
||||
|
|
||||
16th Jan 2009 - Pantheios 1.0.1 beta 178 released |
|
||||
|
|
||||
1st Jan 2009 - Pantheios 1.0.1 beta 177 released |
|
||||
|
|
||||
30th Dec 2008 - Pantheios 1.0.1 beta 176 released |
|
||||
|
|
||||
19th Dec 2008 - Pantheios 1.0.1 beta 175 released |
|
||||
|
|
||||
3rd Dec 2008 - Pantheios 1.0.1 beta 174 released |
|
||||
|
|
||||
18th Nov 2008 - Pantheios 1.0.1 beta 173 released |
|
||||
|
|
||||
13th Nov 2008 - Pantheios 1.0.1 beta 172 released |
|
||||
|
|
||||
11th Nov 2008 - Pantheios 1.0.1 beta 171 released |
|
||||
|
|
||||
10th Nov 2008 - Pantheios 1.0.1 beta 170 released |
|
||||
|
|
||||
3rd Nov 2008 - Pantheios 1.0.1 beta 169 released |
|
||||
|
|
||||
18th Oct 2008 - Pantheios 1.0.1 beta 168 released |
|
||||
|
|
||||
16th Oct 2008 - Pantheios 1.0.1 beta 167 released |
|
||||
|
|
||||
15th Oct 2008 - Pantheios 1.0.1 beta 166 released |
|
||||
|
|
||||
14th Oct 2008 - Pantheios 1.0.1 beta 165 released |
|
||||
|
|
||||
12th Oct 2008 - Pantheios 1.0.1 beta 164 released |
|
||||
|
|
||||
11th Oct 2008 - Pantheios 1.0.1 beta 163 released |
|
||||
|
|
||||
8th Oct 2008 - Pantheios.COM 1.0.1 beta 27 released |
|
||||
|
|
||||
7th Oct 2008 - Pantheios 1.0.1 beta 162 released |
|
||||
|
|
||||
27th Sep 2008 - Pantheios 1.0.1 beta 161 released |
|
||||
|
|
||||
25th Aug 2008 - Pantheios.COM 1.0.1 beta 26 released |
|
||||
|
|
||||
24th Sep 2008 - Pantheios 1.0.1 beta 160 released |
|
||||
|
|
||||
22nd Sep 2008 - Pantheios 1.0.1 beta 159 released |
|
||||
|
|
||||
19th Sep 2008 - Pantheios 1.0.1 beta 158 released |
|
||||
|
|
||||
18th Sep 2008 - Pantheios 1.0.1 beta 157 released |
|
||||
|
|
||||
12th Sep 2008 - Pantheios 1.0.1 beta 156 released |
|
||||
|
|
||||
11th Sep 2008 - Pantheios 1.0.1 beta 155 released |
|
||||
|
|
||||
3rd Sep 2008 - FastFormat 0.2.1 alpha 1 released |
|
||||
|
|
||||
2nd Sep 2008 - Pantheios 1.0.1 beta 154 released |
|
||||
|
|
||||
1st Sep 2008 - Pantheios 1.0.1 beta 153 released |
|
||||
|
|
||||
28th Aug 2008 - Pantheios 1.0.1 beta 152 released |
|
||||
|
|
||||
27th Aug 2008 - Pantheios.COM 1.0.1 beta 25 released |
|
||||
|
|
||||
26th Aug 2008 - Pantheios Library Selector Tool (for Win32) 1.9.4.50 released |
|
||||
|
|
||||
25th Aug 2008 - Pantheios 1.0.1 beta 151 released |
|
||||
|
|
||||
24th Aug 2008 - Pantheios 1.0.1 beta 150 released |
|
||||
|
|
||||
12th Aug 2008 - Pantheios 1.0.1 beta 149 released |
|
||||
|
|
||||
11th Aug 2008 - Pantheios 1.0.1 beta 148 released |
|
||||
|
|
||||
7th Aug 2008 - Pantheios 1.0.1 beta 147 released |
|
||||
|
|
||||
7th Aug 2008 - Pantheios 1.0.1 beta 146 released |
|
||||
|
|
||||
1st Aug 2008 - Pantheios 1.0.1 beta 145 released |
|
||||
|
|
||||
30th Jul 2008 - Pantheios 1.0.1 beta 144 released |
|
||||
|
|
||||
29th Jul 2008 - Pantheios 1.0.1 beta 143 released |
|
||||
|
|
||||
25th Jul 2008 - Pantheios 1.0.1 beta 142 released |
|
||||
|
|
||||
24th Jul 2008 - Pantheios 1.0.1 beta 141 released |
|
||||
|
|
||||
19th Jun 2008 - Pantheios 1.0.1 beta 140 released |
|
||||
|
|
||||
18th Jun 2008 - Pantheios 1.0.1 beta 139 released |
|
||||
|
|
||||
16th Jun 2008 - Pantheios 1.0.1 beta 138 released |
|
||||
|
|
||||
2nd Jun 2008 - Pantheios 1.0.1 beta 137 released |
|
||||
|
|
||||
24th May 2008 - Pantheios.COM 1.0.1 beta 24 released |
|
||||
|
|
||||
22nd May 2008 - Pantheios Library Selector Tool (for Win32) 1.9.2.48 released |
|
||||
|
|
||||
21st May 2008 - Pantheios Library Selector Tool (for Win32) 1.9.1.47 released |
|
||||
|
|
||||
21st May 2008 - Pantheios 1.0.1 beta 136 released |
|
||||
|
|
||||
18th May 2008 - Pantheios Library Selector Tool (for Win32) 1.8.1.45 released |
|
||||
|
|
||||
17th May 2008 - Pantheios 1.0.1 beta 135 released |
|
||||
|
|
||||
17th May 2008 - Pantheios Library Selector Tool (for Win32) 1.7.1.44 released |
|
||||
|
|
||||
16th May 2008 - Pantheios 1.0.1 beta 134 released |
|
||||
|
|
||||
14th May 2008 - Pantheios 1.0.1 beta 133 released |
|
||||
|
|
||||
13th May 2008 - Pantheios 1.0.1 beta 132 released |
|
||||
|
|
||||
11th May 2008 - Pantheios 1.0.1 beta 131 released |
|
||||
|
|
||||
4th May 2008 - Pantheios 1.0.1 beta 130 released |
|
||||
|
|
||||
3rd May 2008 - Pantheios 1.0.1 beta 129 released |
|
||||
|
|
||||
1st May 2008 - Pantheios 1.0.1 beta 128 released |
|
||||
|
|
||||
29th Apr 2008 - Pantheios 1.0.1 beta 127 released |
|
||||
|
|
||||
22nd Apr 2008 - Pantheios 1.0.1 beta 126 released |
|
||||
|
|
||||
20th Apr 2008 - Pantheios 1.0.1 beta 125 released |
|
||||
|
|
||||
20th Apr 2008 - Pantheios 1.0.1 beta 124 released |
|
||||
|
|
||||
19th Apr 2008 - Pantheios 1.0.1 beta 123 released |
|
||||
|
|
||||
16th Apr 2008 - Pantheios 1.0.1 beta 122 released |
|
||||
|
|
||||
15th Apr 2008 - Pantheios 1.0.1 beta 121 released |
|
||||
|
|
||||
13th Apr 2008 - Pantheios.COM 1.0.1 beta 23 released |
|
||||
|
|
||||
10th Apr 2008 - Pantheios 1.0.1 beta 120 released |
|
||||
|
|
||||
8th Apr 2008 - Pantheios 1.0.1 beta 119 released |
|
||||
|
|
||||
6th Apr 2008 - Pantheios 1.0.1 beta 118 released |
|
||||
|
|
||||
5th Apr 2008 - Pantheios 1.0.1 beta 117 released |
|
||||
|
|
||||
4th Apr 2008 - Pantheios 1.0.1 beta 116 released |
|
||||
|
|
||||
3rd Apr 2008 - Pantheios 1.0.1 beta 115 released |
|
||||
|
|
||||
2nd Apr 2008 - Pantheios 1.0.1 beta 114 released |
|
||||
|
|
||||
28th Mar 2008 - Pantheios 1.0.1 beta 113 released |
|
||||
|
|
||||
20th Mar 2008 - Pantheios 1.0.1 beta 112 released |
|
||||
|
|
||||
19th Mar 2008 - Pantheios 1.0.1 beta 111 released |
|
||||
|
|
||||
18th Mar 2008 - Pantheios 1.0.1 beta 110 released |
|
||||
|
|
||||
17th Mar 2008 - Pantheios 1.0.1 beta 109 released |
|
||||
|
|
||||
16th Mar 2008 - Pantheios 1.0.1 beta 108 released |
|
||||
|
|
||||
15th Mar 2008 - Pantheios Library Selector Tool (for Win32) 1.6.1.42 released |
|
||||
|
|
||||
15th Mar 2008 - Pantheios 1.0.1 beta 107 released |
|
||||
|
|
||||
13th Mar 2008 - Pantheios 1.0.1 beta 106 released |
|
||||
|
|
||||
9th Mar 2008 - Pantheios 1.0.1 beta 105 released |
|
||||
|
|
||||
8th Mar 2008 - Pantheios 1.0.1 beta 104 released |
|
||||
|
|
||||
1st Mar 2008 - Pantheios 1.0.1 beta 103 released |
|
||||
|
|
||||
25th Feb 2008 - Pantheios 1.0.1 beta 102 released |
|
||||
|
|
||||
23rd Feb 2008 - Pantheios 1.0.1 beta 101 released |
|
||||
|
|
||||
20th Feb 2008 - Pantheios 1.0.1 beta 100 released |
|
||||
|
|
||||
12th Feb 2008 - Pantheios 1.0.1 beta 99 released |
|
||||
|
|
||||
9th Feb 2008 - Pantheios 1.0.1 beta 98 released |
|
||||
|
|
||||
8th Feb 2008 - Pantheios 1.0.1 beta 97 released |
|
||||
|
|
||||
5th Feb 2008 - Pantheios 1.0.1 beta 96 released |
|
||||
|
|
||||
5th Feb 2008 - Pantheios 1.0.1 beta 95 released |
|
||||
|
|
||||
3rd Jan 2008 - Pantheios.COM 1.0.1 beta 22 released |
|
||||
|
|
||||
3rd Feb 2008 - Pantheios 1.0.1 beta 94 released |
|
||||
|
|
||||
2nd Feb 2008 - Pantheios 1.0.1 beta 93 released |
|
||||
|
|
||||
28th Jan 2008 - Pantheios 1.0.1 beta 92 released |
|
||||
|
|
||||
27th Jan 2008 - Pantheios 1.0.1 beta 91 released |
|
||||
|
|
||||
27th Jan 2008 - Pantheios 1.0.1 beta 90 released |
|
||||
|
|
||||
26th Jan 2008 - Pantheios 1.0.1 beta 89 released |
|
||||
|
|
||||
20th Jan 2008 - Pantheios 1.0.1 beta 88 released |
|
||||
|
|
||||
20th Jan 2008 - Pantheios 1.0.1 beta 87 released |
|
||||
|
|
||||
19th Jan 2008 - Pantheios 1.0.1 beta 86 released |
|
||||
|
|
||||
15th Jan 2008 - Pantheios 1.0.1 beta 85 released |
|
||||
|
|
||||
14th Jan 2008 - Pantheios 1.0.1 beta 84 released |
|
||||
|
|
||||
13th Jan 2008 - Pantheios 1.0.1 beta 83 released |
|
||||
|
|
||||
12th Jan 2008 - Pantheios 1.0.1 beta 82 released |
|
||||
|
|
||||
11th Jan 2008 - Pantheios 1.0.1 beta 81 released |
|
||||
|
|
||||
8th Jan 2008 - Pantheios 1.0.1 beta 80 released |
|
||||
|
|
||||
6th Jan 2008 - Pantheios 1.0.1 beta 79 released |
|
||||
|
|
||||
6th Jan 2008 - Pantheios 1.0.1 beta 78 released |
|
||||
|
|
||||
5th Jan 2008 - Pantheios 1.0.1 beta 77 released |
|
||||
|
|
||||
4th Jan 2008 - Pantheios 1.0.1 beta 76 released |
|
||||
|
|
||||
3rd Jan 2008 - Pantheios 1.0.1 beta 75 released |
|
||||
|
|
||||
3rd Jan 2008 - Pantheios.COM 1.0.1 beta 21 released |
|
||||
|
|
||||
2nd Jan 2008 - Pantheios Library Selector Tool (for Win32) 1.5.2.40 released |
|
||||
|
|
||||
30th Dec 2007 - Pantheios 1.0.1 beta 74 released |
|
||||
|
|
||||
29th Dec 2007 - Pantheios 1.0.1 beta 73 released |
|
||||
|
|
||||
28th Dec 2007 - Pantheios.COM 1.0.1 beta 20 released |
|
||||
|
|
||||
28th Dec 2007 - Pantheios 1.0.1 beta 72 released |
|
||||
|
|
||||
27th Dec 2007 - Pantheios 1.0.1 beta 71 released |
|
||||
|
|
||||
22nd Dec 2007 - Pantheios.COM 1.0.1 beta 19 released |
|
||||
|
|
||||
11th Dec 2007 - Pantheios 1.0.1 beta 70 released |
|
||||
|
|
||||
10th Dec 2007 - Pantheios 1.0.1 beta 69 released |
|
||||
|
|
||||
8th Dec 2007 - Pantheios 1.0.1 beta 68 released |
|
||||
|
|
||||
5th Dec 2007 - Pantheios 1.0.1 beta 67 released |
|
||||
|
|
||||
4th Dec 2007 - Pantheios 1.0.1 beta 66 released |
|
||||
|
|
||||
3rd Dec 2007 - Pantheios 1.0.1 beta 65 released |
|
||||
|
|
||||
2nd Dev 2007 - Pantheios 1.0.1 beta 64 released |
|
||||
|
|
||||
30th Nov 2007 - Pantheios.COM 1.0.1 beta 18 released |
|
||||
|
|
||||
29th Nov 2007 - Pantheios 1.0.1 beta 63 released |
|
||||
|
|
||||
27th Nov 2007 - Pantheios 1.0.1 beta 62 released |
|
||||
|
|
||||
26th Nov 2007 - Pantheios 1.0.1 beta 61 released |
|
||||
|
|
||||
25th Nov 2007 - Pantheios 1.0.1 beta 60 released |
|
||||
|
|
||||
24th Nov 2007 - Pantheios 1.0.1 beta 59 released |
|
||||
|
|
||||
23rd Nov 2007 - Pantheios 1.0.1 beta 58 released |
|
||||
|
|
||||
22nd Nov 2007 - Pantheios 1.0.1 beta 57 released |
|
||||
|
|
||||
21st Nov 2007 - Pantheios 1.0.1 beta 56 released |
|
||||
|
|
||||
20th Nov 2007 - Pantheios.COM 1.0.1 beta 17 released |
|
||||
|
|
||||
20th Nov 2007 - Pantheios 1.0.1 beta 55 released |
|
||||
|
|
||||
19th Nov 2007 - Pantheios 1.0.1 beta 54 released |
|
||||
|
|
||||
18th Nov 2007 - Pantheios.COM 1.0.1 beta 16 released |
|
||||
|
|
||||
18th Nov 2007 - Pantheios 1.0.1 beta 53 released |
|
||||
|
|
||||
17th Nov 2007 - Pantheios 1.0.1 beta 52 released |
|
||||
|
|
||||
16th Nov 2007 - Pantheios 1.0.1 beta 51 released |
|
||||
|
|
||||
15th Nov 2007 - Pantheios 1.0.1 beta 50 released |
|
||||
|
|
||||
14th Nov 2007 - Pantheios 1.0.1 beta 49 released |
|
||||
|
|
||||
13th Nov 2007 - Pantheios 1.0.1 beta 48 released |
|
||||
|
|
||||
12th Nov 2007 - Pantheios 1.0.1 beta 47 released |
|
||||
|
|
||||
11th Nov 2007 - Pantheios 1.0.1 beta 46 released |
|
||||
|
|
||||
10th Nov 2007 - Pantheios 1.0.1 beta 45 released |
|
||||
|
|
||||
3rd Nov 2007 - Pantheios 1.0.1 beta 44 released |
|
||||
|
|
||||
3rd Nov 2007 - Pantheios 1.0.1 beta 43 released |
|
||||
|
|
||||
29th Oct 2007 - Pantheios 1.0.1 beta 42 released |
|
||||
|
|
||||
28th Oct 2007 - Pantheios 1.0.1 beta 41 released |
|
||||
|
|
||||
28th Oct 2007 - Pantheios.COM 1.0.1 beta 15 released |
|
||||
|
|
||||
26th Oct 2007 - Pantheios 1.0.1 beta 40 released |
|
||||
|
|
||||
25th Oct 2007 - Pantheios 1.0.1 beta 39 released |
|
||||
|
|
||||
23rd Oct 2007 - Pantheios 1.0.1 beta 38 released |
|
||||
|
|
||||
22nd Oct 2007 - Pantheios.COM 1.0.1 beta 14 released |
|
||||
|
|
||||
21st Oct 2007 - Pantheios 1.0.1 beta 37 released |
|
||||
|
|
||||
20th Oct 2007 - Pantheios 1.0.1 beta 36 released |
|
||||
|
|
||||
19th Oct 2007 - Pantheios 1.0.1 beta 35 released |
|
||||
|
|
||||
18th Oct 2007 - Pantheios 1.0.1 beta 34 released |
|
||||
|
|
||||
11th Oct 2006 - Pantheios.COM 1.0.1 beta 13 released |
|
||||
|
|
||||
7th Oct 2007 - Pantheios 1.0.1 beta 33 released |
|
||||
|
|
||||
28th Sep 2006 - Pantheios.COM 1.0.1 beta 12 released |
|
||||
|
|
||||
25th Sep 2006 - Pantheios.COM 1.0.1 beta 11 released |
|
||||
|
|
||||
23rd Sep 2006 - Pantheios.COM 1.0.1 beta 10 released |
|
||||
|
|
||||
3rd Sep 2007 - Pantheios 1.0.1 beta 32 released |
|
||||
|
|
||||
18th Aug 2007 - Pantheios 1.0.1 beta 31 released |
|
||||
|
|
||||
16th Aug 2007 - Pantheios 1.0.1 beta 30 released |
|
||||
|
|
||||
5th Aug 2007 - Pantheios 1.0.1 beta 29 released |
|
||||
|
|
||||
2nd Aug 2007 - Pantheios 1.0.1 beta 28 released |
|
||||
|
|
||||
29th Jul 2007 - Pantheios 1.0.1 beta 27 released |
|
||||
|
|
||||
30th Apr 2007 - Pantheios 1.0.1 beta 26 released |
|
||||
|
|
||||
12th Apr 2007 - Pantheios Library Selector Tool (for Win32) 1.5.1.39 released |
|
||||
|
|
||||
11th Apr 2007 - Pantheios 1.0.1 beta 25 released |
|
||||
|
|
||||
6th Apr 2007 - Pantheios 1.0.1 beta 24 released |
|
||||
|
|
||||
11th Mar 2007 - Pantheios Library Selector Tool (for Win32) 1.4.2.37 released |
|
||||
|
|
||||
27th Jan 2007 - Pantheios 1.0.1 beta 23 released |
|
||||
|
|
||||
15th Jan 2007 - Pantheios 1.0.1 beta 22 released |
|
||||
|
|
||||
10th Jan 2007 - Pantheios Library Selector Tool (for Win32) 1.4.2.36 released |
|
||||
|
|
||||
9th Jan 2007 - Pantheios 1.0.1 beta 21 released |
|
||||
|
|
||||
5th Jan 2007 - Pantheios 1.0.1 beta 20 released |
|
||||
|
|
||||
4th Jan 2007 - Pantheios Library Selector Tool (for Win32) 1.4.1.35 released |
|
||||
|
|
||||
2nd Jan 2007 - Pantheios 1.0.1 beta 19 released |
|
||||
|
|
||||
29th Dec 2006 - Product-specific DLL project released |
|
||||
|
|
||||
23rd Dec 2006 - Pantheios.COM 1.0.1 beta 8 released |
|
||||
|
|
||||
23rd Dec 2006 - Pantheios.COM 1.0.1 beta 7 released |
|
||||
|
|
||||
23rd Dec 2006 - Pantheios 1.0.1 beta 18 released |
|
||||
|
|
||||
20th Dec 2006 - Pantheios 1.0.1 beta 17 released |
|
||||
|
|
||||
18th Dec 2006 - Pantheios 1.0.1 beta 16 released |
|
||||
|
|
||||
16th Dec 2006 - Pantheios 1.0.1 beta 15 released |
|
||||
|
|
||||
13th Dec 2006 - Pantheios.COM 1.0.1 beta 6 released |
|
||||
|
|
||||
12th Dec 2006 - Pantheios 1.0.1 beta 14 released |
|
||||
|
|
||||
10th Dec 2006 - Pantheios.COM 1.0.1 beta 5 released |
|
||||
|
|
||||
7th Dec 2006 - Pantheios 1.0.1 beta 13 released |
|
||||
|
|
||||
5th Dec 2006 - Pantheios 1.0.1 beta 12 released |
|
||||
|
|
||||
4th Dec 2006 - Pantheios.COM 1.0.1 beta 4 released |
|
||||
|
|
||||
3rd Dec 2006 - Pantheios Library Selector Tool (for Win32) 1.3.1.33 released |
|
||||
|
|
||||
3rd Dec 2006 - Pantheios 1.0.1 beta 11 released |
|
||||
|
|
||||
1st Dec 2006 - Pantheios 1.0.1 beta 10 released |
|
||||
|
|
||||
29th Nov 2006 - Pantheios 1.0.1 beta 9 released |
|
||||
|
|
||||
27th Nov 2006 - Pantheios 1.0.1 beta 8 released |
|
||||
|
|
||||
29th Oct 2006 - Pantheios 1.0.1 beta 7 released |
|
||||
|
|
||||
21st Oct 2006 - Pantheios 1.0.1 beta 6 released |
|
||||
|
|
||||
8th Oct 2006 - Pantheios 1.0.1 beta 5 released |
|
||||
|
|
||||
5th Dec 2006 - Pantheios.COM 1.0.1 beta 3 released |
|
||||
|
|
||||
4th Oct 2006 - Pantheios 1.0.1 beta 4 released |
|
||||
|
|
||||
26th Sep 2006 - Pre-beta 4 patch. |
|
||||
|
|
||||
3rd Sep 2006 - Pantheios Library Selector Tool (for Win32) 1.2.2.29 released |
|
||||
|
|
||||
24th Sep 2006 - Pantheios 1.0.1 beta 3 released |
|
||||
|
|
||||
17th Sep 2006 - A comparative performance study released, |
|
||||
showing that Pantheios is 10-100 times |
|
||||
faster than its competitors when logging |
|
||||
is switched off. |
|
||||
Details: http://pantheios.org/performance.html |
|
||||
|
|
||||
11th Sep 2006 - Synesis release Win32 logging tool w32dblog, |
|
||||
a command-line tool that monitors the windows |
|
||||
debugger and forwards to console/file/syslog. |
|
||||
|
|
||||
3rd Sep 2006 - Pantheios Library Selector Tool (for Win32) 1.2.1.27 released |
|
||||
|
|
||||
3rd Sep 2006 - Pantheios.COM 1.0.1 beta 2 released |
|
||||
|
|
||||
2nd Sep 2006 - Pantheios 1.0.1 beta 2 released |
|
||||
|
|
||||
9th Aug 2006 - Pantheios.COM 1.0.1 beta 1 released |
|
||||
|
|
||||
=============================== End of file ================================ |
|
@ -1,219 +0,0 @@ |
|||||
pantheios - README |
|
||||
================== |
|
||||
|
|
||||
Updated: 7th August 2012 |
|
||||
|
|
||||
|
|
||||
|
|
||||
See the introduction in the accompanying doc/html/1.0.1-beta214/index.html |
|
||||
file. |
|
||||
|
|
||||
Please feel free to request, nay demand, improvements in any areas |
|
||||
that you feel are deficient. We believe that Pantheios is the best |
|
||||
diagnostic logging API ever created, but we are not so deluded as to think |
|
||||
that our presentational skills are as good. Criticism will be gratefully |
|
||||
received. |
|
||||
|
|
||||
If you are interested in commercial services and/or training for |
|
||||
Pantheios, contact Synesis Software, via http://synesis.com.au/contact.html |
|
||||
|
|
||||
Information about Pantheios training is available at |
|
||||
http://synesis.com.au/training.html |
|
||||
|
|
||||
|
|
||||
10 important things to know about Pantheios: |
|
||||
-------------------------------------------- |
|
||||
|
|
||||
1. It's a diagnostic logging **API** library, not a diagnostic logging |
|
||||
library |
|
||||
|
|
||||
2. It's open-source, and 100% free |
|
||||
|
|
||||
3. It depends on several other libraries, but they're also open source and |
|
||||
100% free |
|
||||
|
|
||||
4. It's incredibly efficient, and is faster than all other serious C++ |
|
||||
diagnostic logging libraries by a huge margin (up to two orders of |
|
||||
magnitude) |
|
||||
|
|
||||
5. It is 100% type-safe |
|
||||
|
|
||||
6. Selection of logging transport (i.e. "back-end(s)") is done at link-time, |
|
||||
for very good reason |
|
||||
|
|
||||
7. It's highly extensible |
|
||||
|
|
||||
8. It's being used by serious commercial enterprises, including very high |
|
||||
throughput financial systems |
|
||||
|
|
||||
9. It's highly portable - including most C++ compilers and most/all flavours |
|
||||
of UNIX, Linux, Mac OS-X and Windows |
|
||||
|
|
||||
10. Pantheios is under active development from a highly motivated team, who |
|
||||
have the ambition that it will become the diagnostic logging API of |
|
||||
choice for all C++ programmers who wish to have performance without |
|
||||
sacrificing robustness or flexibility; the team want to hear from you how |
|
||||
they can better achieve these aims |
|
||||
|
|
||||
|
|
||||
Details: |
|
||||
- - - - |
|
||||
|
|
||||
1. It's a diagnostic logging **API** library, not a diagnostic logging |
|
||||
library |
|
||||
|
|
||||
The Pantheios architecture is split into four parts: |
|
||||
- Application Layer - you use this to create diagnostic logging |
|
||||
statements in your application code |
|
||||
- Core - this is what ties it all together. Apart from initialising the |
|
||||
core (which happens automatically in C++ compilation units), you |
|
||||
don't need to do anything with the core |
|
||||
- Front-end - this is what decides which statements are written out, as |
|
||||
well as providing the application identity (name) to the Core during |
|
||||
initialisation. There are several stock Front-ends included in the |
|
||||
Pantheios distribution, but you may well implement your own |
|
||||
- Back-end - this is what emits the logging statement (if the front-end |
|
||||
allows it to be written) to the outside world. There are a number of |
|
||||
stock Back-ends included in the Pantheios distribution, but you may |
|
||||
well implement your own |
|
||||
|
|
||||
One criticism that we sometimes get from new users goes along the lines |
|
||||
of |
|
||||
|
|
||||
" the performance is brilliant, but you don't have all the features of |
|
||||
log4cxx " |
|
||||
|
|
||||
We know. It's designed to be that way. |
|
||||
|
|
||||
Pantheios is a diagnostic logging API library. The interaction between |
|
||||
Application Layer, Core and Front-end means that nothing else can come |
|
||||
anywhere near Pantheios in terms of performance, type-safety or |
|
||||
extensibility. But it's specifically designed for you to use it _above_ |
|
||||
existing logging libraries that have more features. To do so, you can |
|
||||
write a simple back-end to wrap, say, log4cxx, and plug it in at |
|
||||
link-time. That way you get all the performance and safety of Pantheios, |
|
||||
with the rich feature set of log4cxx. It's win-win! |
|
||||
|
|
||||
|
|
||||
2. It's open-source, and 100% free |
|
||||
|
|
||||
It uses the widely appreciated (modified-)BSD license. |
|
||||
|
|
||||
|
|
||||
3. It depends on several other libraries, but they're also open source and |
|
||||
100% free |
|
||||
|
|
||||
Apart from one library - STLSoft - all the libraries on which Pantheios |
|
||||
depends are bundled with the Pantheios distribution. These libraries are: |
|
||||
|
|
||||
- xTests (see http://xtests.org/) |
|
||||
|
|
||||
A simple, lightweight unit-/component-testing libary for C |
|
||||
and C++ |
|
||||
|
|
||||
This library is used only in the unit-/component-testing |
|
||||
|
|
||||
- b64 (see http://synesis.com.au/software/b64.html) |
|
||||
|
|
||||
A simple, exceedingly lightweight implementation of the Base-64 |
|
||||
encoding |
|
||||
|
|
||||
This library is used by the pantheios::b64 inserter class |
|
||||
|
|
||||
- shwild (see http://shwild.org/) |
|
||||
|
|
||||
An implementation (UNIX) shell compatible wildcards. |
|
||||
|
|
||||
This library is used only in the unit-/component-testing |
|
||||
|
|
||||
The other library on which Pantheios depends is STLSoft (see |
|
||||
http://stlsoft.org). STLSoft is *not* an STL replacement, it is an STL |
|
||||
extension library. Additionally, it provides a number of system and |
|
||||
compiler discrimination features that Pantheios uses to simplify its |
|
||||
implementation |
|
||||
|
|
||||
|
|
||||
4. It's incredibly efficient, and is faster than all other serious C++ |
|
||||
diagnostic logging libraries by a huge margin (up to two orders of |
|
||||
magnitude) |
|
||||
|
|
||||
See http://pantheios.sourceforge.net/performance.html#sweet-spot if you |
|
||||
don't believe us |
|
||||
|
|
||||
|
|
||||
5. It is 100% type-safe |
|
||||
|
|
||||
... unlike any diagnostic logging library built on C's Streams or C++'s |
|
||||
IOStreams libraries. |
|
||||
|
|
||||
|
|
||||
6. Selection of logging transport (i.e. "back-end(s)") is done at link-time, |
|
||||
for very good reason |
|
||||
|
|
||||
The reason is simple: a diagnostic logging library must be available |
|
||||
whenever _any_ part of the application code needs it. In C++, it's |
|
||||
possible to execute a significant amount of functionality during dynamic |
|
||||
initialisation, so we cannot afford to wait for main() to set up the |
|
||||
logging. |
|
||||
|
|
||||
The consequence of this is Pantheios' only hard-to-use aspect, that of |
|
||||
setting up the linking. There are several tutorials available for this |
|
||||
purpose in the documentation |
|
||||
|
|
||||
|
|
||||
7. It's highly extensible |
|
||||
|
|
||||
Pantheios ships with a number of stock transports (known as |
|
||||
"back-end(s)"), including console, Syslog, COM Error Object, speech, |
|
||||
Windows Debugger, Windows Event Log. You can extend the range with a |
|
||||
custom back-end by implementing a very simple C-API. The details are in |
|
||||
the documentation. |
|
||||
|
|
||||
By default, the Pantheios Application Layer understands a large range of |
|
||||
string types (and types that can be meaningfully converted into strings, |
|
||||
such as struct tm, FILETIME, struct in_addr, and so on). Pantheios allows |
|
||||
you to infinitely extend the range of types that may be incorporated into |
|
||||
logging statements in your application code. There is an extensive |
|
||||
tutorial on this in the documentation. |
|
||||
|
|
||||
|
|
||||
8. It's being used by serious commercial enterprises, including very high |
|
||||
throughput financial systems |
|
||||
|
|
||||
Pantheios is in use by companies in Australia, US, and throughout the |
|
||||
world. |
|
||||
|
|
||||
One notable user in New York contacted Synesis Software |
|
||||
(see http://synesis.com.au/) in Dec 2007 to design and implement custom |
|
||||
front-/back-ends to enhance the performance to an insane degree - not one |
|
||||
processor cycle is wasted - because they believe that their systems will |
|
||||
need to produce more diagnostic logging output than any other softare |
|
||||
system in history. |
|
||||
|
|
||||
An NDA prevents us from naming the client, their business, or the nature |
|
||||
of the customisations, but we can say that they're delighted with the |
|
||||
system's performance and reliability. They said that Pantheios operates |
|
||||
with "clock-cycle speed"! |
|
||||
|
|
||||
|
|
||||
9. It's highly portable - including most C++ compilers and most/all flavours |
|
||||
of UNIX, Linux, Mac OS-X and Windows |
|
||||
|
|
||||
Pantheios has been tested on a wide range of C++ compilers, and a |
|
||||
reasonable range of operating systems. In UNIX flavours, there are no |
|
||||
platform-specific constructs used. Any new compiler/platform will |
|
||||
require a minimum of enhancement to the STLSoft configuration. The |
|
||||
development team are always happy to help/advise any such user. |
|
||||
|
|
||||
|
|
||||
10. Pantheios is under active development from a highly motivated team, who |
|
||||
have the ambition that it will become the diagnostic logging API of |
|
||||
choice for all C++ programmers who wish to have performance without |
|
||||
sacrificing robustness or flexibility; the team want to hear from you how |
|
||||
they can better achieve these aims |
|
||||
|
|
||||
That pretty much says it all. We know it's the best concept based on the |
|
||||
best theory, and we're keen to help make it work well for all users |
|
||||
everywhere. |
|
||||
|
|
||||
=============================== End of file ================================ |
|
@ -1,246 +0,0 @@ |
|||||
pantheios - TODO lists |
|
||||
====================== |
|
||||
|
|
||||
Updated: 7th August 2012 |
|
||||
|
|
||||
|
|
||||
Summaries: |
|
||||
========== |
|
||||
|
|
||||
|
|
||||
Pantheios 1.0 TODOs: |
|
||||
-------------------- |
|
||||
|
|
||||
+ new logo |
|
||||
+ new website |
|
||||
+ integrated blog |
|
||||
~ rewrite Core in pure C (or NoX for VC++ 7.1+ and GCC) |
|
||||
~ rewrite Back-ends in pure C (or NoX for VC++ 7.1+ and GCC) |
|
||||
~ rewrite Front-ends in pure C (or NoX for VC++ 7.1+ and GCC) |
|
||||
+ auto-generate project files for VS'98, 2008, 2010 |
|
||||
+ auto-generate implicit-link files |
|
||||
+ auto-generate be l/r source files |
|
||||
+ auto-generate be l/r header files |
|
||||
+ rolling file |
|
||||
+ be.N static filtering |
|
||||
~ reimplement integral conversion in terms of new STLSoft 1.10 components |
|
||||
+ showPlus format flag support |
|
||||
* release by Q4 2012!!! |
|
||||
|
|
||||
|
|
||||
|
|
||||
Pantheios 1.1 TODOs: |
|
||||
-------------------- |
|
||||
+ auto-generate project files for Xcode |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
** fix the TODO file first!! ** |
|
||||
|
|
||||
|
|
||||
+ Comeau 4.3.10 support |
|
||||
|
|
||||
+ README.TXT |
|
||||
~ complete, sensible distribution files |
|
||||
+ new website |
|
||||
+ separate UNIX and Windows distros, with the appropriate |
|
||||
newline sequence for each |
|
||||
~ sort out \file fields |
|
||||
+ full complement of Visual Studio 2003 project/solution files |
|
||||
+ full complement of Visual Studio 2005 project/solution files |
|
||||
+ full complement of Visual Studio 2008 project/solution files |
|
||||
+ full complement of Visual Studio 2010 project/solution files |
|
||||
~ full complement of Visual Studio '98 project/solution files |
|
||||
~ review all the download/build/install documentation |
|
||||
+ auto-check all implicit_link files |
|
||||
|
|
||||
|
|
||||
Pantheios 1.1 TODOs: |
|
||||
-------------------- |
|
||||
|
|
||||
+ makefiles for SunStudio (on Solaris and Linux) |
|
||||
+ full complement of Turbo C++ project/solution files |
|
||||
(possibly, + full complement of XCode project/solution files) |
|
||||
+ be.file buffering |
|
||||
+ be.file rolling |
|
||||
+ control console for fe.WindowsRegistry |
|
||||
+ component test be.WindowsSyslog |
|
||||
|
|
||||
Pantheios 1.2 TODOs: |
|
||||
-------------------- |
|
||||
|
|
||||
~ Custom event log for bailout |
|
||||
~ Custom event log for be.WindowsEventLog |
|
||||
+ be.loader fixed/internal (Windows, Mac & UNIX) |
|
||||
+ be.loader dynamic/external (Windows, Mac & UNIX) |
|
||||
|
|
||||
Pantheios 1.3 TODOs: |
|
||||
-------------------- |
|
||||
|
|
||||
+ implicit support for integer |
|
||||
+ implicit support for floating-point types (possibly) |
|
||||
|
|
||||
|
|
||||
Pantheios 1.4 TODOs: |
|
||||
-------------------- |
|
||||
|
|
||||
+ Integrate FastFormat for full internationalisation |
|
||||
|
|
||||
|
|
||||
|
|
||||
Details: |
|
||||
======== |
|
||||
|
|
||||
The following is a (non-exhaustive) list of items that will ideally be |
|
||||
included in future releases. |
|
||||
|
|
||||
|
|
||||
? 2. RPMs, and packages for SUSE, FreeBSD, Mac OS-X, etc. |
|
||||
--------------------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: low/medium |
|
||||
|
|
||||
|
|
||||
? 4. pantheios_printf_len() family |
|
||||
---------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: low/medium |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
These functions will help in the implementation of maximally |
|
||||
efficient custom string access shims |
|
||||
|
|
||||
|
|
||||
? 6. Fast arena |
|
||||
--------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: low/medium |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
Create a Pantheios fast arena, for inserter classes. |
|
||||
|
|
||||
|
|
||||
? 8. Literal string internationalisation |
|
||||
---------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: low |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
Internationalise the severity strings ???? |
|
||||
|
|
||||
|
|
||||
? 9. Implement be.pantheios.COM |
|
||||
------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: medium |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
This'll be implemented in terms of Pantheios.COM, implementing the |
|
||||
back-end calls in terms of the Composite logger. |
|
||||
|
|
||||
|
|
||||
? 11. Workspaces/project files for compilers |
|
||||
-------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: low/medium |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
Need to generate automatically from the VC6 ones, for: |
|
||||
Borland |
|
||||
Visual C++ (7.x, 8.0) |
|
||||
others? |
|
||||
|
|
||||
|
|
||||
? 12. Fully featured log4cxx, log4cplus, log4cpp backends |
|
||||
--------------------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: medium |
|
||||
|
|
||||
|
|
||||
? 14. Implement be.loader for Windows |
|
||||
------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: medium |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
|
|
||||
? 15. Implement be.loader for UNIX |
|
||||
---------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: medium |
|
||||
|
|
||||
Details: |
|
||||
|
|
||||
|
|
||||
? 18. Allow be.file (or another be) to support file rolling |
|
||||
----------------------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Prioriry: medium |
|
||||
|
|
||||
Details: a user has requested a facility to allow log file rolling, i.e. |
|
||||
where a log is closed, and another opened, based on date and/or |
|
||||
size. |
|
||||
|
|
||||
|
|
||||
? 21. A decent README, and tutorial for UNIX and Win32, w + w/o IDE(s) |
|
||||
---------------------------------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Prioriry: medium |
|
||||
|
|
||||
Details: ????. |
|
||||
|
|
||||
|
|
||||
? 24. Fully document the library naming convention |
|
||||
-------------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Prioriry: medium |
|
||||
|
|
||||
Details: Explain to users what on earth |
|
||||
pantheios.1.bec.COMErrorObject.vc71.mt.nox.debug.lib means. |
|
||||
|
|
||||
|
|
||||
|
|
||||
? 27. Fully-featured ACE back-end / front-end |
|
||||
--------------------------------------------- |
|
||||
|
|
||||
Status: |
|
||||
|
|
||||
Priority: medium |
|
||||
|
|
||||
|
|
||||
|
|
||||
=============================== End of file ================================ |
|
@ -1,19 +0,0 @@ |
|||||
<html> |
|
||||
<head> |
|
||||
<title>Pantheios - Project Map - bin</title> |
|
||||
<!-- |
|
||||
Created: 22nd September 2008 |
|
||||
Updated: 22nd September 2008 |
|
||||
--> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h1>Pantheios - Project Map - bin</h1> |
|
||||
|
|
||||
<p> |
|
||||
Contains all the (test and example) programs built using the makefiles provided with the distribution. |
|
||||
</p> |
|
||||
|
|
||||
</body> |
|
||||
</html> |
|
||||
|
|
||||
|
|
8840
resources/3rdparty/pantheios-1.0.1-beta214/build/ar/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
19946
resources/3rdparty/pantheios-1.0.1-beta214/build/bc551/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
19946
resources/3rdparty/pantheios-1.0.1-beta214/build/bc56/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
19946
resources/3rdparty/pantheios-1.0.1-beta214/build/bc564/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
20250
resources/3rdparty/pantheios-1.0.1-beta214/build/bc582/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
20250
resources/3rdparty/pantheios-1.0.1-beta214/build/bc59x/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
20250
resources/3rdparty/pantheios-1.0.1-beta214/build/bc61x/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8152
resources/3rdparty/pantheios-1.0.1-beta214/build/como433.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8990
resources/3rdparty/pantheios-1.0.1-beta214/build/como433.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8152
resources/3rdparty/pantheios-1.0.1-beta214/build/cw8.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
16660
resources/3rdparty/pantheios-1.0.1-beta214/build/cw8.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
7538
resources/3rdparty/pantheios-1.0.1-beta214/build/dm/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc32.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
17352
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc32.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc33.mac/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc33.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
17352
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc33.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc34.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
17352
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc34.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc40.mac.x64/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc40.mac/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc40.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc41.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc42.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc43.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc44.unix.file64bit/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc44.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc45.unix.file64bit/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc45.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc46.unix.file64bit/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15800
resources/3rdparty/pantheios-1.0.1-beta214/build/gcc46.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
24592
resources/3rdparty/pantheios-1.0.1-beta214/build/icl10.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
24592
resources/3rdparty/pantheios-1.0.1-beta214/build/icl11.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
17042
resources/3rdparty/pantheios-1.0.1-beta214/build/icl12.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
24592
resources/3rdparty/pantheios-1.0.1-beta214/build/icl6.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
24592
resources/3rdparty/pantheios-1.0.1-beta214/build/icl7.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
24592
resources/3rdparty/pantheios-1.0.1-beta214/build/icl8.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
24592
resources/3rdparty/pantheios-1.0.1-beta214/build/icl9.win32/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,110 +0,0 @@ |
|||||
<html> |
|
||||
<head> |
|
||||
<title>Pantheios - Project Map - build</title> |
|
||||
<!-- |
|
||||
Created: 22nd September 2008 |
|
||||
Updated: 22nd September 2008 |
|
||||
--> |
|
||||
</head> |
|
||||
<body> |
|
||||
<h1>Pantheios - Project Map - build</h1> |
|
||||
|
|
||||
<p> |
|
||||
Each sub-directory of this directory, <code>build</code>, contains a makefile |
|
||||
for a given compiler/architecture/operating system combination. To build |
|
||||
Pantheios, open a shell / command-box in that directory, and execute |
|
||||
<code>make</code> (or <code>NMAKE</code>). The following are common command-lines |
|
||||
that are used: |
|
||||
<ul> |
|
||||
<li> |
|
||||
<code>make build.libs</code> - compiles and links all libraries |
|
||||
</li> |
|
||||
<li> |
|
||||
<code>make build</code> - compiles and links all libraries, examples, and test programs |
|
||||
</li> |
|
||||
<li> |
|
||||
<code>make build.examples</code> - compiles and links all examples (and any library dependencies) |
|
||||
</li> |
|
||||
<li> |
|
||||
<code>make test</code> - compiles and links all unit-/component-test programs (and any library dependencies), and executes them |
|
||||
</li> |
|
||||
<li> |
|
||||
<code>make test.unit</code> - compiles and links all unit-test programs (and any library dependencies), and executes them |
|
||||
</li> |
|
||||
<li> |
|
||||
<code>make test.component</code> - compiles and links all component-test programs (and any library dependencies), and executes them |
|
||||
</li> |
|
||||
<li> |
|
||||
<code>make test.performance</code> - compiles and links all performance-test programs (and any library dependencies), and executes them |
|
||||
</li> |
|
||||
</ul> |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
The Pantheios team most commonly execute <code>make</code> with |
|
||||
"<code>make build test test.performance</code>", which causes all libraries, examples |
|
||||
and test programs to be built, and then executes the unit-tests, component-tests and |
|
||||
performance-tests. This pretty much verifies that everything is ok for a given |
|
||||
installation. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
Selecting your build directory is pretty straightforward: just select the directory |
|
||||
that most closely matches, from the following list. Note: It is not necessary to |
|
||||
separate specific architectures / operating systems |
|
||||
in every case. For example, the gcc41.unix directory contains a makefile that |
|
||||
will work regardless of bit-size (e.g. 32-bit vs 64-bit) and operating system |
|
||||
flavour (e.g. Linux vs BSD vs Solaris). Once you know your compiler, architecture, |
|
||||
and operating system, |
|
||||
</p> |
|
||||
|
|
||||
<table border="1"> |
|
||||
<tr> |
|
||||
<th>Compiler</th> |
|
||||
<th>Compiler Version</th> |
|
||||
<th>Operating System</th> |
|
||||
<th>Architecture</th> |
|
||||
<th>Makefile Directory</th> |
|
||||
</tr> |
|
||||
<tr><td>Borland</td><td>5.5.1</td><td>Windows</td><td>x86</td><td>bc551</td></tr> |
|
||||
<tr><td>Borland</td><td>5.6</td><td>Windows</td><td>x86</td><td>bc56</td></tr> |
|
||||
<tr><td>Borland</td><td>5.64</td><td>Windows</td><td>x86</td><td>bc564</td></tr> |
|
||||
<tr><td>Borland</td><td>5.82</td><td>Windows</td><td>x86</td><td>bc582</td></tr> |
|
||||
<tr><td>Comeau</td><td>4.3.3</td><td>UNIX</td><td><any></td><td>como433.unix</td></tr> |
|
||||
<tr><td>Comeau</td><td>4.3.3</td><td>Windows</td><td>x86</td><td>como433.win32</td></tr> |
|
||||
<tr><td>Metrowerks CodeWarrior</td><td>8.3</td><td>UNIX</td><td><any></td><td>cw8.unix</td></tr> |
|
||||
<tr><td>Metrowerks CodeWarrior</td><td>8.3</td><td>Windows</td><td>x86</td><td>cw8.win32</td></tr> |
|
||||
<tr><td>Digital Mars</td><td><latest></td><td>UNIX</td><td><any></td><td>dm</td></tr> |
|
||||
<tr><td>GCC</td><td>3.2</td><td>UNIX</td><td><any></td><td>gcc32.unix</td></tr> |
|
||||
<tr><td>GCC</td><td>3.2</td><td>Windows</td><td>x86</td><td>gcc32.win32</td></tr> |
|
||||
<tr><td>GCC</td><td>3.3</td><td>Mac OS-X</td><td><any></td><td>gcc33.mac</td></tr> |
|
||||
<tr><td>GCC</td><td>3.3</td><td>UNIX</td><td><any></td><td>gcc33.unix</td></tr> |
|
||||
<tr><td>GCC</td><td>3.3</td><td>Windows</td><td>x86</td><td>gcc33.win32</td></tr> |
|
||||
<tr><td>GCC</td><td>3.4</td><td>UNIX</td><td><any></td><td>gcc34.unix</td></tr> |
|
||||
<tr><td>GCC</td><td>3.4</td><td>Windows</td><td>x86</td><td>gcc34.win32</td></tr> |
|
||||
<tr><td>GCC</td><td>4.0</td><td>Mac OS-X</td><td><any></td><td>gcc40.mac</td></tr> |
|
||||
<tr><td>GCC</td><td>4.0</td><td>UNIX</td><td><any></td><td>gcc40.unix</td></tr> |
|
||||
<tr><td>GCC</td><td>4.1</td><td>Mac OS-X</td><td><any></td><td>gcc41.mac</td></tr> |
|
||||
<tr><td>GCC</td><td>4.1</td><td>UNIX</td><td><any></td><td>gcc41.unix</td></tr> |
|
||||
<tr><td>GCC</td><td>4.2</td><td>Mac OS-X</td><td><any></td><td>gcc42.mac</td></tr> |
|
||||
<tr><td>GCC</td><td>4.2</td><td>UNIX</td><td><any></td><td>gcc42.unix</td></tr> |
|
||||
<tr><td>GCC</td><td>4.3</td><td>Mac OS-X</td><td><any></td><td>gcc43.mac</td></tr> |
|
||||
<tr><td>GCC</td><td>4.3</td><td>UNIX</td><td><any></td><td>gcc43.unix</td></tr> |
|
||||
<tr><td>Intel</td><td>6</td><td>Windows</td><td>x86</td><td>icl6.win32</td></tr> |
|
||||
<tr><td>Intel</td><td>7</td><td>Windows</td><td>x86</td><td>icl7.win32</td></tr> |
|
||||
<tr><td>Intel</td><td>8</td><td>Windows</td><td>x86</td><td>icl8.win32</td></tr> |
|
||||
<tr><td>Intel</td><td>9</td><td>Windows</td><td>x86</td><td>icl9.win32</td></tr> |
|
||||
<tr><td>Visual C++</td><td>5</td><td>Windows</td><td>x86</td><td>vc5</td></tr> |
|
||||
<tr><td>Visual C++</td><td>6</td><td>Windows</td><td>x86</td><td>vc6</td></tr> |
|
||||
<tr><td>Visual C++</td><td>7</td><td>Windows</td><td>x86</td><td>vc7</td></tr> |
|
||||
<tr><td>Visual C++</td><td>7.1</td><td>Windows</td><td>x86</td><td>vc71</td></tr> |
|
||||
<tr><td>Visual C++</td><td>8</td><td>Windows</td><td>x86</td><td>vc8</td></tr> |
|
||||
<tr><td>Visual C++</td><td>8</td><td>Windows</td><td>x64</td><td>vc8.x64</td></tr> |
|
||||
<tr><td>Visual C++</td><td>9</td><td>Windows</td><td>x86</td><td>vc9</td></tr> |
|
||||
<tr><td>Visual C++</td><td>9</td><td>Windows</td><td>x64</td><td>vc9.x64</td></tr> |
|
||||
</table> |
|
||||
|
|
||||
</body> |
|
||||
</html> |
|
||||
|
|
||||
|
|
14800
resources/3rdparty/pantheios-1.0.1-beta214/build/sunpro59x.unix/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8369
resources/3rdparty/pantheios-1.0.1-beta214/build/vc10.unixem/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc10.x64/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc10/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8369
resources/3rdparty/pantheios-1.0.1-beta214/build/vc11.unixem/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc11.x64/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc11/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
49798
resources/3rdparty/pantheios-1.0.1-beta214/build/vc5/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
15386
resources/3rdparty/pantheios-1.0.1-beta214/build/vc6.unixem/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
65674
resources/3rdparty/pantheios-1.0.1-beta214/build/vc6/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
48702
resources/3rdparty/pantheios-1.0.1-beta214/build/vc7/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
48702
resources/3rdparty/pantheios-1.0.1-beta214/build/vc71/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8369
resources/3rdparty/pantheios-1.0.1-beta214/build/vc8.unixem/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc8.x64/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc8/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8369
resources/3rdparty/pantheios-1.0.1-beta214/build/vc9.unixem/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc9.x64/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
33583
resources/3rdparty/pantheios-1.0.1-beta214/build/vc9/makefile
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,140 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/example.c.101/example.c.101.c |
|
||||
* |
|
||||
* Purpose: C example program for introducing the basic essential |
|
||||
* features of Pantheios when using only the C API. |
|
||||
* Demonstrates: |
|
||||
* |
|
||||
* - how the Pantheios libraries must be explicitly |
|
||||
* initialised in a C program; this is not the case in |
|
||||
* C++ programs |
|
||||
* - use of pantheios_logputs() |
|
||||
* - use of pantheios_logprintf() |
|
||||
* - the statement size limitation imposed by |
|
||||
* pantheios_logprintf() |
|
||||
* |
|
||||
* Created: 17th January 2008 |
|
||||
* Updated: 7th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/ |
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> /* The root header for Panthieos when using the C-API. */ |
|
||||
#include <pantheios/frontends/stock.h> /* Declares the process identity symbol PANTHEIOS_FE_PROCESS_IDENTITY */ |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <string.h> |
|
||||
|
|
||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* Globals |
|
||||
*/ |
|
||||
|
|
||||
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.101"); |
|
||||
|
|
||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* main |
|
||||
*/ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
int retCode = EXIT_SUCCESS; |
|
||||
int res; |
|
||||
|
|
||||
/* Initialise the Pantheios libraries. This will cause the Core to |
|
||||
* initialise, which will itself initialise the front-end and back-end |
|
||||
* libraries. |
|
||||
* |
|
||||
* Note: This is not required when your program contains 1 or more |
|
||||
* C++ compilation units that #include <pantheios/pantheios.hpp>, since |
|
||||
* that file contains mechanisms within it that cause the initialisation |
|
||||
* to be done automatically. However, it is still best practice to do so |
|
||||
* because that other compilation unit might be removed or replaced with |
|
||||
* a C compilation unit at a future time. |
|
||||
*/ |
|
||||
res = pantheios_init(); |
|
||||
|
|
||||
if(0 != res) |
|
||||
{ |
|
||||
/* If initialisation failed, we report why using |
|
||||
* pantheios_getInitCodeString() |
|
||||
*/ |
|
||||
|
|
||||
fprintf(stderr, "Failed to initialise the Pantheios libraries: %s\n", pantheios_getInitCodeString(res)); |
|
||||
|
|
||||
retCode = EXIT_FAILURE; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
/* The libraries are now initialised, so we can output diagnostic |
|
||||
* logging statements. |
|
||||
*/ |
|
||||
|
|
||||
PAN_CHAR_T bigBuff[5000]; |
|
||||
size_t n; |
|
||||
|
|
||||
int i = 10; |
|
||||
double d = 20.20; |
|
||||
PAN_CHAR_T c = 'c'; |
|
||||
|
|
||||
|
|
||||
/* 1. use pantheios_logputs(), which takes a severity level and a |
|
||||
* single string |
|
||||
*/ |
|
||||
|
|
||||
pantheios_logputs(PANTHEIOS_SEV_NOTICE, PANTHEIOS_LITERAL_STRING("pantheios_logputs() can output a single C-style string")); |
|
||||
|
|
||||
|
|
||||
|
|
||||
/* 2. use pantheios_logprintf() to output some fundamental type |
|
||||
* instances |
|
||||
*/ |
|
||||
|
|
||||
pantheios_logprintf(PANTHEIOS_SEV_WARNING, PANTHEIOS_LITERAL_STRING("pantheios_logprintf() uses a format string like this one, and can output all the types compatible with the printf() family, including ints (e.g. i = %d), doubles (e.g. d = %G), and chars (e.g. c = %c)"), i, d, c); |
|
||||
|
|
||||
|
|
||||
|
|
||||
/* 3. use pantheios_logprintf() to illustrate the size limit imposed by |
|
||||
* this API function |
|
||||
* |
|
||||
* Note: the C++ API log() method overloads do not impose a |
|
||||
* statement size limit; nor does pantheios_logputs() |
|
||||
*/ |
|
||||
|
|
||||
for(n = 0; n != (sizeof(bigBuff) / sizeof(0[bigBuff])) - 1; ++n) |
|
||||
{ |
|
||||
bigBuff[n] = '-'; |
|
||||
} |
|
||||
bigBuff[n] = '\0'; |
|
||||
|
|
||||
|
|
||||
pantheios_logprintf(PANTHEIOS_SEV_WARNING, PANTHEIOS_LITERAL_STRING("NOTE: pantheios_logprintf() output is limited to 4095 characters. The rest of this statement is a very long string of '-' characters, enclosed in quotations. As you can see, it will not be fully emitted: \"%s\""), bigBuff); |
|
||||
|
|
||||
|
|
||||
|
|
||||
/* Uninitialise the Pantheios libraries. |
|
||||
* |
|
||||
* Note: This is not required when your program contains 1 or more |
|
||||
* C++ compilation units that #include <pantheios/pantheios.hpp>, |
|
||||
* since that file contains mechanisms within it that cause the |
|
||||
* initialisation/uninitialisation to occur automatically. |
|
||||
*/ |
|
||||
pantheios_uninit(); |
|
||||
} |
|
||||
|
|
||||
return retCode; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/example.c.101/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.101 project. |
|
||||
* |
|
||||
* Created: 17th January 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,118 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/example.c.N/example.c.N.c |
|
||||
* |
|
||||
* Purpose: C example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of be.N back-end library that multiplexes output to |
|
||||
* various concrete back-ends |
|
||||
* - use of fe.N front-end library, that arbitrates output |
|
||||
* for be.N |
|
||||
* |
|
||||
* Created: 5th December 2006 |
|
||||
* Updated: 22nd March 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/ |
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
|
|
||||
/* PlatformSTL Header Files */ |
|
||||
#include <platformstl/platformstl.h> /* for platform discrimination */ |
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> /* main Pantheios C header file */ |
|
||||
#include <pantheios/frontends/fe.N.h> |
|
||||
#include <pantheios/backends/be.N.h> |
|
||||
#include <pantheios/backends/bec.file.h> |
|
||||
#include <pantheios/backends/bec.fprintf.h> |
|
||||
#include <pantheios/backends/bec.null.h> |
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) |
|
||||
# include <pantheios/backends/bec.syslog.h> |
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS) |
|
||||
# include <pantheios/backends/bec.WindowsSyslog.h> |
|
||||
#else /* ? OS */ |
|
||||
# error Operating system not discriminated |
|
||||
#endif /* OS */ |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdlib.h> /* for exit codes */ |
|
||||
|
|
||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* Globals |
|
||||
*/ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using |
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.N"); |
|
||||
|
|
||||
pan_fe_N_t PAN_FE_N_SEVERITY_CEILINGS[] = |
|
||||
{ |
|
||||
{ 1, PANTHEIOS_SEV_NOTICE } /* Filters out everything below 'notice' */ |
|
||||
, { 2, PANTHEIOS_SEV_DEBUG } /* Allows all severities */ |
|
||||
, { 3, PANTHEIOS_SEV_ERROR } /* Allows only 'error', 'critical', 'alert', 'emergency' */ |
|
||||
, { 0, PANTHEIOS_SEV_NOTICE } /* Terminates the array; sets the default ceiling to 'notice' */ |
|
||||
}; |
|
||||
|
|
||||
pan_be_N_t PAN_BE_N_BACKEND_LIST[] = |
|
||||
{ |
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(1, pantheios_be_file, 0) |
|
||||
, PANTHEIOS_BE_N_STDFORM_ENTRY(2, pantheios_be_fprintf, 0) |
|
||||
, PANTHEIOS_BE_N_STDFORM_ENTRY(3, pantheios_be_null, 0) |
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) |
|
||||
, PANTHEIOS_BE_N_STDFORM_ENTRY(4, pantheios_be_syslog, 0) |
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS) |
|
||||
, PANTHEIOS_BE_N_STDFORM_ENTRY(4, pantheios_be_WindowsSyslog, 0) |
|
||||
#endif /* OS */ |
|
||||
, PANTHEIOS_BE_N_STDFORM_ENTRY(5, pantheios_be_file, 0) |
|
||||
, PANTHEIOS_BE_N_TERMINATOR_ENTRY |
|
||||
}; |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
/* Must initialise Pantheios, when using from C (and there are no C++ |
|
||||
* compilation units in the link-unit). |
|
||||
* |
|
||||
* If this is not done, undefined behaviour will ensue ... |
|
||||
*/ |
|
||||
if(pantheios_init() < 0) |
|
||||
{ |
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
pantheios_logputs(PANTHEIOS_SEV_DEBUG, PANTHEIOS_LITERAL_STRING("debug")); |
|
||||
pantheios_logputs(PANTHEIOS_SEV_INFORMATIONAL, PANTHEIOS_LITERAL_STRING("info")); |
|
||||
pantheios_logputs(PANTHEIOS_SEV_NOTICE, PANTHEIOS_LITERAL_STRING("notice")); |
|
||||
pantheios_logputs(PANTHEIOS_SEV_WARNING, PANTHEIOS_LITERAL_STRING("warn")); |
|
||||
|
|
||||
pantheios_be_file_setFilePath(PANTHEIOS_LITERAL_STRING("file-1.log"), PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BE_FILE_F_TRUNCATE, 1); |
|
||||
|
|
||||
pantheios_logputs(PANTHEIOS_SEV_ERROR, PANTHEIOS_LITERAL_STRING("error")); |
|
||||
pantheios_logputs(PANTHEIOS_SEV_CRITICAL, PANTHEIOS_LITERAL_STRING("critical")); |
|
||||
pantheios_logputs(PANTHEIOS_SEV_ALERT, PANTHEIOS_LITERAL_STRING("alert")); |
|
||||
pantheios_logputs(PANTHEIOS_SEV_EMERGENCY, PANTHEIOS_LITERAL_STRING("emergency")); |
|
||||
|
|
||||
pantheios_be_file_setFilePath(PANTHEIOS_LITERAL_STRING("file-5.log"), 0, 0, 5); |
|
||||
|
|
||||
/* Must uninitialise Pantheios. |
|
||||
* |
|
||||
* pantheios_uninit() must be called once for each successful (>=0) |
|
||||
* invocation of pantheios_init(). |
|
||||
*/ |
|
||||
pantheios_uninit(); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/example.c.N/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.N project. |
|
||||
* |
|
||||
* Created: 18th June 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,71 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/example.c.assert/example.c.assert.c |
|
||||
* |
|
||||
* Purpose: C example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - how the Pantheios libraries must be explicitly |
|
||||
* initialised in a C program; this is not the case in |
|
||||
* C++ programs |
|
||||
* - use of PANTHEIOS_ASSERT() |
|
||||
* |
|
||||
* Created: 8th May 2009 |
|
||||
* Updated: 22nd March 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/ |
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/assert.h> |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdlib.h> |
|
||||
|
|
||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* Compiler compatibility |
|
||||
*/ |
|
||||
|
|
||||
#ifdef STLSOFT_COMPILER_IS_BORLAND |
|
||||
# pragma warn -8008 |
|
||||
# pragma warn -8066 |
|
||||
#endif |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using |
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.assert"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
int i = pantheios_init(); |
|
||||
|
|
||||
if(i >= 0) |
|
||||
{ |
|
||||
PANTHEIOS_ASSERT(1); |
|
||||
|
|
||||
PANTHEIOS_ASSERT(0); |
|
||||
|
|
||||
|
|
||||
PANTHEIOS_MESSAGE_ASSERT(1, "it was true"); |
|
||||
|
|
||||
PANTHEIOS_MESSAGE_ASSERT(0, "it was false"); |
|
||||
|
|
||||
pantheios_uninit(); |
|
||||
} |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/example.c.assert/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.assert project. |
|
||||
* |
|
||||
* Created: 8th May 2009 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,71 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/example.c.core.pantheios_logprintf/example.c.core.pantheios_logprintf.c |
|
||||
* |
|
||||
* Purpose: C example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of pantheios_logprintf() in C compilation units |
|
||||
* |
|
||||
* Created: 31st August 2006 |
|
||||
* Updated: 22nd March 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/ |
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> /* Pantheios C main header */ |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdlib.h> /* for exit codes */ |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using |
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.core.pantheios_logprintf"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
/* Must initialise Pantheios, when using from C (and there are no C++ |
|
||||
* compilation units in the link-unit). |
|
||||
* |
|
||||
* If this is not done, undefined behaviour will ensue ... |
|
||||
*/ |
|
||||
if(pantheios_init() < 0) |
|
||||
{ |
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
int i = 123; |
|
||||
float f = 99.99f; |
|
||||
|
|
||||
/* Log the int and the float: Output: "int=123, float=99.99" |
|
||||
*/ |
|
||||
pantheios_logprintf(PANTHEIOS_SEV_INFORMATIONAL |
|
||||
, PANTHEIOS_LITERAL_STRING("int=%d, float=%g") |
|
||||
, i, f); |
|
||||
|
|
||||
/* Must uninitialise Pantheios. |
|
||||
* |
|
||||
* pantheios_uninit() must be called once for each successful (>=0) |
|
||||
* invocation of pantheios_init(). |
|
||||
*/ |
|
||||
pantheios_uninit(); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/example.c.core.pantheios_logprintf/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.core.pantheios_logprintf project. |
|
||||
* |
|
||||
* Created: 18th June 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,74 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/example.c.extended_severity/example.c.extended_severity.c |
|
||||
* |
|
||||
* Purpose: C example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - how the Pantheios libraries must be explicitly |
|
||||
* initialised in a C program; this is not the case in |
|
||||
* C++ programs |
|
||||
* - use of extended severity information, via |
|
||||
* PANTHEIOS_MAKE_EXTENDED_SEVERITY() |
|
||||
* |
|
||||
* Created: 21st May 2009 |
|
||||
* Updated: 22nd March 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/ |
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdlib.h> |
|
||||
|
|
||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* Compiler compatibility |
|
||||
*/ |
|
||||
|
|
||||
#ifdef STLSOFT_COMPILER_IS_BORLAND |
|
||||
# pragma warn -8008 |
|
||||
# pragma warn -8066 |
|
||||
#endif |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using |
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.extended_severity"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
int i = pantheios_init(); |
|
||||
|
|
||||
if(i >= 0) |
|
||||
{ |
|
||||
/* 1. Using the Pantheios API macro PANTHEIOS_MAKE_EXTENDED_SEVERITY() */ |
|
||||
pantheios_logprintf(PANTHEIOS_MAKE_EXTENDED_SEVERITY(PANTHEIOS_SEV_NOTICE, 10), PANTHEIOS_LITERAL_STRING("hello")); |
|
||||
|
|
||||
|
|
||||
/* 2 (a). In your code, you'd define your own, most succinct, symbol, e.g. ACME_XSEV(sev, xi28) */ |
|
||||
#define ACME_XSEV(sev, xi28) PANTHEIOS_MAKE_EXTENDED_SEVERITY(PANTHEIOS_SEV_ ## sev, xi28) |
|
||||
|
|
||||
/* 2 (b). and use it as follows */ |
|
||||
pantheios_logprintf(ACME_XSEV(NOTICE, 10), PANTHEIOS_LITERAL_STRING("hello")); |
|
||||
|
|
||||
|
|
||||
pantheios_uninit(); |
|
||||
} |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/example.c.extended_severity/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.extended_severity project. |
|
||||
* |
|
||||
* Created: 21st May 2009 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2009-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,79 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/example.c.log_n/example.c.log_n.c |
|
||||
* |
|
||||
* Purpose: C example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of pantheios_log_?() in C compilation units |
|
||||
* |
|
||||
* Created: 31st August 2006 |
|
||||
* Updated: 22nd March 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/ |
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> /* Pantheios C main header */ |
|
||||
#include <pantheios/util/string/snprintf.h> /* for pantheios_util_snprintf() */ |
|
||||
#include <pantheios/internal/safestr.h> |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdio.h> /* for sprintf() */ |
|
||||
#include <stdlib.h> /* for exit codes */ |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using |
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.log_n"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
/* Must initialise Pantheios, when using from C (and there are no C++ |
|
||||
* compilation units in the link-unit). |
|
||||
* |
|
||||
* If this is not done, undefined behaviour will ensue ... |
|
||||
*/ |
|
||||
if(pantheios_init() < 0) |
|
||||
{ |
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
int numUsers = 1000000; |
|
||||
PAN_CHAR_T szNumUsers[101]; |
|
||||
|
|
||||
/* Log a three part statement. Note that specifying -1 |
|
||||
* for the length causes the corresponding string argument to be |
|
||||
* interpreted as a nul-terminated string, and its length to be |
|
||||
* calculated (via strlen()); Output: |
|
||||
* "We're sure there're likely to be >00000000000001000000 satisfied users of Pantheios" |
|
||||
*/ |
|
||||
pantheios_log_3(PANTHEIOS_SEV_CRITICAL |
|
||||
, PANTHEIOS_LITERAL_STRING("We're sure there're likely to be >"), -1 |
|
||||
, szNumUsers, pantheios_util_snprintf(&szNumUsers[0], STLSOFT_NUM_ELEMENTS(szNumUsers), PANTHEIOS_LITERAL_STRING("%020d"), numUsers) |
|
||||
, PANTHEIOS_LITERAL_STRING(" satisfied users of Pantheios"), -1); |
|
||||
|
|
||||
/* Must uninitialise Pantheios. |
|
||||
* |
|
||||
* pantheios_uninit() must be called once for each successful (>=0) |
|
||||
* invocation of pantheios_init(). |
|
||||
*/ |
|
||||
pantheios_uninit(); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/example.c.log_n/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.log_n project. |
|
||||
* |
|
||||
* Created: 18th June 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,186 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/util/example.c.util.getcurrenttime/example.c.util.getcurrenttime.c |
|
||||
* |
|
||||
* Purpose: Implementation file for the example.c.util.getcurrenttime project. |
|
||||
* |
|
||||
* Created: 30th August 2008 |
|
||||
* Updated: 27th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> |
|
||||
#include <pantheios/util/time/currenttime.h> |
|
||||
|
|
||||
/* STLSoft Header Files */ |
|
||||
#include <stlsoft/stlsoft.h> |
|
||||
#include <platformstl/platformstl.h> |
|
||||
#if defined(PLATFORMSTL_OS_IS_WINDOWS) |
|
||||
# include <winstl/error/error_functions.h> |
|
||||
#endif /* OS */ |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <errno.h> |
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <string.h> |
|
||||
|
|
||||
#if defined(_MSC_VER) && \ |
|
||||
defined(_DEBUG) |
|
||||
# include <crtdbg.h> |
|
||||
#endif /* _MSC_VER) && _DEBUG */ |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main(int argc, char** argv) |
|
||||
{ |
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); |
|
||||
STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
|
|
||||
/* Using local time with the default representation for the platform */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, 0); |
|
||||
|
|
||||
printf("time with 0 flags: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
/* Using the current user time, with UNIX format */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
int flags = 0 |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_USE_UNIX_FORMAT |
|
||||
; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, flags); |
|
||||
|
|
||||
printf("time, with UNIX format: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
/* Using system time with the default representation for the platform */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
int flags = 0 |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_USE_SYSTEM_TIME |
|
||||
; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, flags); |
|
||||
|
|
||||
printf("time, using system time: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
/* Using local time with the default representation for the platform, favouring speed */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
int flags = 0 |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_USE_SYSTEM_TIME |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_SPEED |
|
||||
; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, flags); |
|
||||
|
|
||||
printf("time, using system time, favouring speed: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
/* Using local time with the default representation for the platform, favouring accuracy */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
int flags = 0 |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_USE_SYSTEM_TIME |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_ACCURACY |
|
||||
; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, flags); |
|
||||
|
|
||||
printf("time, using system time, favouring accuracy: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
/* Using local time with the default representation for the platform, microsecond resolution, favouring speed */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
int flags = 0 |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_TIME_RES_MICROSECS |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_SPEED |
|
||||
; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, flags); |
|
||||
|
|
||||
printf("time, showing microseconds, favouring speed: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
/* Using local time with the default representation for the platform, microsecond resolution, favouring accuracy */ |
|
||||
{ |
|
||||
PAN_CHAR_T buff[101]; |
|
||||
pan_beutil_time_t tm; |
|
||||
int flags = 0 |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_TIME_RES_MICROSECS |
|
||||
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_ACCURACY |
|
||||
; |
|
||||
size_t n; |
|
||||
|
|
||||
tm.capacity = STLSOFT_NUM_ELEMENTS(buff); |
|
||||
tm.len = 0; |
|
||||
tm.str = &buff[0]; |
|
||||
tm.strftimeFmt = NULL; |
|
||||
|
|
||||
n = pantheios_util_getCurrentTime(&tm, flags); |
|
||||
|
|
||||
printf("time, showing microseconds, favouring accuracy: %.*s\n", (int)n, buff); |
|
||||
} |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/util/example.c.util.getcurrenttime/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.util.getcurrenttime project. |
|
||||
* |
|
||||
* Created: 30th August 2008 |
|
||||
* Updated: 27th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,137 +0,0 @@ |
|||||
/* ///////////////////////////////////////////////////////////////////////// |
|
||||
* File: examples/c/util/example.c.util.gethostname/example.c.util.gethostname.c |
|
||||
* |
|
||||
* Purpose: Implementation file for the example.c.util.gethostname project. |
|
||||
* |
|
||||
* Created: 25th August 2008 |
|
||||
* Updated: 27th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.h> |
|
||||
#include <pantheios/util/system/hostname.h> |
|
||||
|
|
||||
#include <pantheios/internal/safestr.h> |
|
||||
|
|
||||
/* STLSoft Header Files */ |
|
||||
#include <stlsoft/stlsoft.h> |
|
||||
#include <platformstl/platformstl.h> |
|
||||
#if defined(PLATFORMSTL_OS_IS_WINDOWS) |
|
||||
# include <winstl/error/error_functions.h> |
|
||||
#endif /* OS */ |
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <errno.h> |
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <string.h> |
|
||||
|
|
||||
#if defined(_MSC_VER) && \ |
|
||||
defined(_DEBUG) |
|
||||
# include <crtdbg.h> |
|
||||
#endif /* _MSC_VER) && _DEBUG */ |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main(int argc, char** argv) |
|
||||
{ |
|
||||
PAN_CHAR_T name[101]; |
|
||||
size_t cch = pantheios_getHostName(&name[0], STLSOFT_NUM_ELEMENTS(name)); |
|
||||
|
|
||||
/* There are three possible return values: |
|
||||
* |
|
||||
* 0 - indicates that no host name is available, or there was an error |
|
||||
* when retrieving it |
|
||||
* 101 - the buffer is not long enough |
|
||||
* [1, 101) - the name was successfully retrieved |
|
||||
* |
|
||||
* The only complication when processing this is that the last error |
|
||||
* information is held in an operating-system-specific form. On Windows, |
|
||||
* it is available via GetLastError(); otherwise use errno |
|
||||
*/ |
|
||||
|
|
||||
if(0 == cch) |
|
||||
{ |
|
||||
/* not available, or a problem retrieving it */ |
|
||||
|
|
||||
#if defined(PLATFORMSTL_OS_IS_WINDOWS) |
|
||||
|
|
||||
DWORD error = GetLastError(); |
|
||||
char* message; |
|
||||
|
|
||||
if(0 == winstl_C_format_message_alloc_a(error, NULL, &message)) |
|
||||
{ |
|
||||
/* Could not retrieve a string-form of the error, so print |
|
||||
* out the error code (in case that might help) |
|
||||
*/ |
|
||||
|
|
||||
fprintf(stderr, "could not elicit hostname: %lu\n", error); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
/* Print out the error string, and release it. |
|
||||
* |
|
||||
* Note: in C++, these function names are a lot cleaner |
|
||||
*/ |
|
||||
|
|
||||
fprintf(stderr, "could not elicit hostname: %s\n", message); |
|
||||
|
|
||||
winstl_C_format_message_free_buff_a(message); |
|
||||
} |
|
||||
|
|
||||
#else /* ? OS */ |
|
||||
|
|
||||
# ifdef PANTHEIOS_USING_SAFE_STR_FUNCTIONS |
|
||||
char err[1001]; |
|
||||
int r = strerror_s(err, STLSOFT_NUM_ELEMENTS(err) - 1, errno); |
|
||||
|
|
||||
if(0 != r) |
|
||||
{ |
|
||||
err[0] = '\0'; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
err[STLSOFT_NUM_ELEMENTS(err) - 1] = '\0'; |
|
||||
} |
|
||||
|
|
||||
fprintf(stderr, "could not elicit hostname: %s\n", err); |
|
||||
|
|
||||
# else /* ? PANTHEIOS_USING_SAFE_STR_FUNCTIONS */ |
|
||||
fprintf(stderr, "could not elicit hostname: %s\n", strerror(errno)); |
|
||||
# endif /* PANTHEIOS_USING_SAFE_STR_FUNCTIONS */ |
|
||||
|
|
||||
|
|
||||
#endif /* OS */ |
|
||||
} |
|
||||
else if(STLSOFT_NUM_ELEMENTS(name) == cch) |
|
||||
{ |
|
||||
/* buffer too short */ |
|
||||
|
|
||||
fprintf(stderr, "could not elicit hostname: name longer than given buffer\n"); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
/* Success. Print it out! */ |
|
||||
|
|
||||
fprintf(stdout, "host name: %s\n", name); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); |
|
||||
STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/c/util/example.c.util.gethostname/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.c.util.gethostname project. |
|
||||
* |
|
||||
* Created: 25th August 2008 |
|
||||
* Updated: 27th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,124 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.callback/example.cpp.backends.callback.cpp |
|
||||
* |
|
||||
* Purpose: C++ example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of a back-end library that uses callbacks. |
|
||||
* - use of pantheios::logputs() in bail-out conditions |
|
||||
* |
|
||||
* Created: 25th August 2006 |
|
||||
* Updated: 11th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/
|
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
#include <pantheios/util/test/compiler_warnings_suppression.first_include.h>
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.hpp> // Pantheios C++ main header
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/backends/bec.fprintf.h> // Include the API for bec.fprintf
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/backends/bec.WindowsConsole.h> // Include the API for bec.WindowsConsole
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* Standard C/C++ Header Files */ |
|
||||
#include <exception> // for std::exception
|
|
||||
#include <new> // for std::bad_alloc
|
|
||||
#include <string> // for std::string
|
|
||||
#include <stdlib.h> // for exit codes
|
|
||||
|
|
||||
#if defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
/* Windows Header Files */ |
|
||||
# include <windows.h> // for console colour constants
|
|
||||
#endif /* PLATFORMSTL_OS_IS_WINDOWS */
|
|
||||
|
|
||||
#include <pantheios/util/test/compiler_warnings_suppression.last_include.h>
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using
|
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.backends.callback"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
|
|
||||
PANTHEIOS_CALL(void) pantheios_be_fprintf_getAppInit( |
|
||||
int /* backEndId */ |
|
||||
, pan_be_fprintf_init_t* init) /* throw() */ |
|
||||
{ |
|
||||
init->flags |= PANTHEIOS_BE_INIT_F_NO_DATETIME; // Don't show date/time
|
|
||||
} |
|
||||
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
|
|
||||
PANTHEIOS_CALL(void) pantheios_be_WindowsConsole_getAppInit( |
|
||||
int /* backEndId */ |
|
||||
, pan_be_WindowsConsole_init_t* init |
|
||||
) /* throw() */ |
|
||||
{ |
|
||||
init->flags |= PANTHEIOS_BE_INIT_F_NO_DATETIME; // Don't show date/time
|
|
||||
|
|
||||
init->colours[pantheios::debug] = FOREGROUND_BLUE | FOREGROUND_INTENSITY; // Lose the white background
|
|
||||
init->colours[pantheios::notice] = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED; // Lose the intensity
|
|
||||
} |
|
||||
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x)
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
try |
|
||||
{ |
|
||||
pantheios::log_DEBUG(PSTR("debug")); |
|
||||
pantheios::log_INFORMATIONAL(PSTR("informational")); |
|
||||
pantheios::log_NOTICE(PSTR("notice")); |
|
||||
pantheios::log_WARNING(PSTR("warning")); |
|
||||
pantheios::log_ERROR(PSTR("error")); |
|
||||
pantheios::log_CRITICAL(PSTR("critical")); |
|
||||
pantheios::log_ALERT(PSTR("alert")); |
|
||||
pantheios::log_EMERGENCY(PSTR("emergency")); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
catch(std::bad_alloc&) |
|
||||
{ |
|
||||
pantheios::log(pantheios::alert, PSTR("out of memory")); |
|
||||
} |
|
||||
catch(std::exception& x) |
|
||||
{ |
|
||||
pantheios::log_CRITICAL(PSTR("Exception: "), x); |
|
||||
} |
|
||||
catch(...) |
|
||||
{ |
|
||||
pantheios::logputs(pantheios::emergency, PSTR("Unexpected unknown error")); |
|
||||
} |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,40 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.callback/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.cpp.backends.callback project. |
|
||||
* |
|
||||
* Created: 21st October 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/be.fprintf.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/be.WindowsConsole.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,135 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.file.callback/example.cpp.backends.file.callback.cpp |
|
||||
* |
|
||||
* Purpose: C++ example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of pantheios_be_file_setFilePath() |
|
||||
* - use of pantheios::logputs() in bail-out conditions |
|
||||
* |
|
||||
* Created: 29th November 2006 |
|
||||
* Updated: 7th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/
|
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.hpp> // Pantheios C++ main header
|
|
||||
#include <pantheios/inserters/args.hpp> // for pantheios::args
|
|
||||
|
|
||||
#include <pantheios/backends/bec.file.h> // be.file header
|
|
||||
|
|
||||
/* Standard C/C++ Header Files */ |
|
||||
#include <exception> // for std::exception
|
|
||||
#include <new> // for std::bad_alloc
|
|
||||
#include <string> // for std::string
|
|
||||
#include <stdlib.h> // for exit codes
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using
|
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.backends.file.callback"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x)
|
|
||||
|
|
||||
#ifdef PANTHEIOS_USE_WIDE_STRINGS
|
|
||||
# define pan_strcpy_ wcscpy
|
|
||||
#else
|
|
||||
# define pan_strcpy_ strcpy
|
|
||||
#endif
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Application-defined functions |
|
||||
*/ |
|
||||
|
|
||||
/** Cause the file to be opened when the application is starting up.
|
|
||||
*/ |
|
||||
PANTHEIOS_CALL(void) pantheios_be_file_getAppInit( |
|
||||
int /* backEndId */ |
|
||||
, pan_be_file_init_t* init |
|
||||
) /* throw() */ |
|
||||
{ |
|
||||
init->flags |= PANTHEIOS_BE_FILE_F_TRUNCATE; // Truncate the contents
|
|
||||
init->flags |= PANTHEIOS_BE_FILE_F_DELETE_IF_EMPTY; // Delete the file if nothing written
|
|
||||
|
|
||||
init->fileName = pan_strcpy_(init->buff, PSTR("callback-test-%D-%T.log")); |
|
||||
} |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main(int argc, char **argv) |
|
||||
{ |
|
||||
// Use of be.file involves several steps:
|
|
||||
//
|
|
||||
// 1. Linking to the back-end, either explicitly or implicitly
|
|
||||
// 2. Setting the log file path for the given back-end(s)
|
|
||||
// 3. Making log statements
|
|
||||
// 4. Changing the log file path for the given back-end(s)
|
|
||||
// 5. Closing the log file for the given back-end(s)
|
|
||||
|
|
||||
// In this case, linking is performed either by the build makefile or the
|
|
||||
// IDE project file, to the be.file back-end.
|
|
||||
//
|
|
||||
// In this case, the log file path via the application-defined callback
|
|
||||
// function pantheios_be_file_getAppInit(), which is called during program
|
|
||||
// initialisation, prior to main() being called. At the same time, the
|
|
||||
// flags PANTHEIOS_BE_FILE_F_TRUNCATE and
|
|
||||
// PANTHEIOS_BE_FILE_F_DELETE_IF_EMPTY are specified
|
|
||||
//
|
|
||||
// In this case, the file is closed automatically during program
|
|
||||
// uninitialisation.
|
|
||||
|
|
||||
try |
|
||||
{ |
|
||||
#ifndef PANTHEIOS_USE_WIDE_STRINGS
|
|
||||
pantheios::log_DEBUG("main(", pantheios::args(argc, argv), ")"); |
|
||||
#else /* ? !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
#endif /* !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 1")); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 2")); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 3")); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 4")); |
|
||||
|
|
||||
pantheios::log_DEBUG(PSTR("exiting main()")); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
catch(std::bad_alloc&) |
|
||||
{ |
|
||||
pantheios::log(pantheios::alert, PSTR("out of memory")); |
|
||||
} |
|
||||
catch(std::exception& x) |
|
||||
{ |
|
||||
pantheios::log_CRITICAL(PSTR("Exception: "), x); |
|
||||
} |
|
||||
catch(...) |
|
||||
{ |
|
||||
pantheios::logputs(pantheios::emergency, PSTR("Unexpected unknown error")); |
|
||||
} |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,33 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.file.callback/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.cpp.backends.file.callback project. |
|
||||
* |
|
||||
* Created: 21st October 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <pantheios/implicit_link/be.file.WithCallback.h>
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,129 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.file.lrsplit/example.cpp.backends.file.lrsplit.cpp |
|
||||
* |
|
||||
* Purpose: C++ example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of pantheios_be_file_setFilePath() |
|
||||
* - use of pantheios::logputs() in bail-out conditions |
|
||||
* |
|
||||
* Created: 29th November 2006 |
|
||||
* Updated: 7th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/
|
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.hpp> // Pantheios C++ main header
|
|
||||
#include <pantheios/inserters/args.hpp> // for pantheios::args
|
|
||||
|
|
||||
#include <pantheios/backends/bec.file.h> // be.file header
|
|
||||
|
|
||||
/* Standard C/C++ Header Files */ |
|
||||
#include <exception> // for std::exception
|
|
||||
#include <new> // for std::bad_alloc
|
|
||||
#include <string> // for std::string
|
|
||||
#include <stdlib.h> // for exit codes
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using
|
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.backends.file.lrsplit"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x)
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main(int argc, char **argv) |
|
||||
{ |
|
||||
// Use of be.file involves several steps:
|
|
||||
//
|
|
||||
// 1. Linking to the back-end, either explicitly or implicitly
|
|
||||
// 2. Setting the log file path for the given back-end(s)
|
|
||||
// 3. Making log statements
|
|
||||
// 4. Changing the log file path for the given back-end(s)
|
|
||||
// 5. Closing the log file for the given back-end(s)
|
|
||||
|
|
||||
// In this case, linking is performed either by the build makefile or the
|
|
||||
// IDE project file, to the be.lrsplit back-end, the bel.file local
|
|
||||
// back-end, and the ber.file remote back-end.
|
|
||||
//
|
|
||||
// In this case, only one back-end is specified, so the back-end
|
|
||||
// identifier PANTHEIOS_BEID_ALL (=== 0) is used.
|
|
||||
//
|
|
||||
// In this case, the log file path is set to 'log.single', and the file is
|
|
||||
// truncated with the flag and mask PANTHEIOS_BE_FILE_F_TRUNCATE.
|
|
||||
//
|
|
||||
// In this case, we explicitly close the log-file, then open it again,
|
|
||||
// just for illustrative purposes.
|
|
||||
|
|
||||
try |
|
||||
{ |
|
||||
#ifndef PANTHEIOS_USE_WIDE_STRINGS
|
|
||||
pantheios::log_DEBUG("main(", pantheios::args(argc, argv), ")"); |
|
||||
#else /* ? !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
#endif /* !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 1")); |
|
||||
|
|
||||
|
|
||||
// Set the file name for the local back-end, truncating the
|
|
||||
// file's existing contents, if any.
|
|
||||
pantheios_be_file_setFilePath(PSTR("local.log"), PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BEID_LOCAL); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 2")); |
|
||||
|
|
||||
|
|
||||
// Set the file name for the remote back-end, not truncating, so that
|
|
||||
// its contents accrue each execution.
|
|
||||
pantheios_be_file_setFilePath(PSTR("remote.log"), PANTHEIOS_BEID_REMOTE); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 3")); |
|
||||
|
|
||||
|
|
||||
// Close all files, by setting the path to NULL.
|
|
||||
pantheios_be_file_setFilePath(NULL, PANTHEIOS_BEID_ALL); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 4")); |
|
||||
|
|
||||
|
|
||||
pantheios::log_DEBUG(PSTR("exiting main()")); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
catch(std::bad_alloc&) |
|
||||
{ |
|
||||
pantheios::log(pantheios::alert, PSTR("out of memory")); |
|
||||
} |
|
||||
catch(std::exception& x) |
|
||||
{ |
|
||||
pantheios::log_CRITICAL(PSTR("Exception: "), x); |
|
||||
} |
|
||||
catch(...) |
|
||||
{ |
|
||||
pantheios::logputs(pantheios::emergency, PSTR("Unexpected unknown error")); |
|
||||
} |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,35 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.file.lrsplit/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.cpp.backends.file.lrsplit project. |
|
||||
* |
|
||||
* Created: 21st October 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <pantheios/implicit_link/be.lrsplit.h>
|
|
||||
#include <pantheios/implicit_link/bel.file.h>
|
|
||||
#include <pantheios/implicit_link/ber.file.h>
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,130 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.file/example.cpp.backends.file.cpp |
|
||||
* |
|
||||
* Purpose: C++ example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of pantheios_be_file_setFilePath() |
|
||||
* - use of pantheios::logputs() in bail-out conditions |
|
||||
* |
|
||||
* Created: 29th November 2006 |
|
||||
* Updated: 7th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/
|
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.hpp> // Pantheios C++ main header
|
|
||||
#include <pantheios/inserters/args.hpp> // for pantheios::args
|
|
||||
|
|
||||
#include <pantheios/backends/bec.file.h> // be.file header
|
|
||||
|
|
||||
/* Standard C/C++ Header Files */ |
|
||||
#include <exception> // for std::exception
|
|
||||
#include <new> // for std::bad_alloc
|
|
||||
#include <string> // for std::string
|
|
||||
#include <stdlib.h> // for exit codes
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using
|
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.backends.file"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x)
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main(int argc, char **argv) |
|
||||
{ |
|
||||
// Use of be.file involves several steps:
|
|
||||
//
|
|
||||
// 1. Linking to the back-end, either explicitly or implicitly
|
|
||||
// 2. Setting the log file path for the given back-end(s)
|
|
||||
// 3. Making log statements
|
|
||||
// 4. Changing the log file path for the given back-end(s)
|
|
||||
// 5. Closing the log file for the given back-end(s)
|
|
||||
|
|
||||
// In this case, linking is performed either by the build makefile or the
|
|
||||
// IDE project file, to the be.file back-end.
|
|
||||
//
|
|
||||
// In this case, only one back-end is specified, so the back-end
|
|
||||
// identifier PANTHEIOS_BEID_ALL (=== 0) is used.
|
|
||||
//
|
|
||||
// In this case, the log file path is set to 'log.single', and the file is
|
|
||||
// truncated with the flag and mask PANTHEIOS_BE_FILE_F_TRUNCATE.
|
|
||||
//
|
|
||||
// In this case, we explicitly close the log-file, then open it again,
|
|
||||
// just for illustrative purposes.
|
|
||||
|
|
||||
try |
|
||||
{ |
|
||||
#ifndef PANTHEIOS_USE_WIDE_STRINGS
|
|
||||
pantheios::log_DEBUG("main(", pantheios::args(argc, argv), ")"); |
|
||||
#else /* ? !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
#endif /* !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 1")); |
|
||||
|
|
||||
|
|
||||
// Set the file name for the only back-end, truncating the file's
|
|
||||
// existing contents, if any.
|
|
||||
pantheios_be_file_setFilePath(PSTR("single.log"), PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BEID_ALL); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 2")); |
|
||||
|
|
||||
|
|
||||
// Close the file, by setting the path to NULL.
|
|
||||
pantheios_be_file_setFilePath(NULL, PANTHEIOS_BEID_ALL); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 3")); |
|
||||
|
|
||||
|
|
||||
// (Re)set the file name for the only back-end, and change it to append
|
|
||||
// to the file's existing contents. Note that this must be done by
|
|
||||
// changing the truncate bit in the mask to 0.
|
|
||||
pantheios_be_file_setFilePath(PSTR("single.log"), PANTHEIOS_BE_FILE_F_TRUNCATE, 0, PANTHEIOS_BEID_ALL); |
|
||||
|
|
||||
|
|
||||
pantheios::log_NOTICE(PSTR("stmt 4")); |
|
||||
|
|
||||
|
|
||||
pantheios::log_DEBUG(PSTR("exiting main()")); |
|
||||
|
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
catch(std::bad_alloc&) |
|
||||
{ |
|
||||
pantheios::log(pantheios::alert, PSTR("out of memory")); |
|
||||
} |
|
||||
catch(std::exception& x) |
|
||||
{ |
|
||||
pantheios::log_CRITICAL(PSTR("Exception: "), x); |
|
||||
} |
|
||||
catch(...) |
|
||||
{ |
|
||||
pantheios::logputs(pantheios::emergency, PSTR("Unexpected unknown error")); |
|
||||
} |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,33 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.file/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.cpp.file project. |
|
||||
* |
|
||||
* Created: 21st October 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <pantheios/implicit_link/be.file.h>
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,125 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.mx.1/example.cpp.backends.mx.1.cpp |
|
||||
* |
|
||||
* Purpose: Implementation file for the example.cpp.backends.mx.1 project. |
|
||||
* |
|
||||
* Created: 19th September 2008 |
|
||||
* Updated: 11th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.hpp>
|
|
||||
#include <pantheios/inserters/args.hpp>
|
|
||||
#include <pantheios/frontends/fe.simple.h>
|
|
||||
#include <pantheios/backends/be.N.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/backends/bec.fprintf.h>
|
|
||||
# include <pantheios/backends/bec.syslog.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/backends/bec.WindowsConsole.h>
|
|
||||
# include <pantheios/backends/bec.WindowsSyslog.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* STLSoft Header Files */ |
|
||||
#include <stlsoft/stlsoft.h>
|
|
||||
|
|
||||
/* Standard C++ Header Files */ |
|
||||
#include <exception>
|
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdio.h>
|
|
||||
#include <stdlib.h>
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Globals |
|
||||
*/ |
|
||||
|
|
||||
extern "C" const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.backends.mx.1"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x)
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Logging management |
|
||||
*/ |
|
||||
|
|
||||
enum |
|
||||
{ |
|
||||
beid_Console = 1, |
|
||||
beid_Syslog = 2 |
|
||||
}; |
|
||||
|
|
||||
pan_be_N_t PAN_BE_N_BACKEND_LIST[] = |
|
||||
{ |
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Console, pantheios_be_fprintf, 0), |
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Syslog, pantheios_be_syslog, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), |
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Console, pantheios_be_WindowsConsole, 0), |
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Syslog, pantheios_be_WindowsSyslog, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), |
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
PANTHEIOS_BE_N_TERMINATOR_ENTRY |
|
||||
}; |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
static int main_(int argc, char** argv) |
|
||||
{ |
|
||||
// This goes only to debugger
|
|
||||
#ifndef PANTHEIOS_USE_WIDE_STRINGS
|
|
||||
pantheios::log_NOTICE(PSTR("main("), pantheios::args(argc, argv), PSTR(")")); |
|
||||
#else /* ? !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
#endif /* !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
|
|
||||
|
|
||||
// This goes to console and debugger
|
|
||||
pantheios::log(pantheios::notice(beid_Syslog), PSTR("Isn't targeted multiplexing great?!")); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
int main(int argc, char** argv) |
|
||||
{ |
|
||||
try |
|
||||
{ |
|
||||
return main_(argc, argv); |
|
||||
} |
|
||||
catch(std::bad_alloc&) |
|
||||
{ |
|
||||
pantheios::log(pantheios::alert, PSTR("out of memory")); |
|
||||
} |
|
||||
catch(std::exception& x) |
|
||||
{ |
|
||||
pantheios::log_CRITICAL(PSTR("Exception: "), x); |
|
||||
} |
|
||||
catch(...) |
|
||||
{ |
|
||||
pantheios::logputs(pantheios::emergency, PSTR("Unhandled unknown error")); |
|
||||
} |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,42 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.mx.1/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.mx.1 project. |
|
||||
* |
|
||||
* Created: 19th September 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <pantheios/implicit_link/be.N.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/bec.fprintf.h>
|
|
||||
# include <pantheios/implicit_link/bec.syslog.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/bec.WindowsConsole.h>
|
|
||||
# include <pantheios/implicit_link/bec.WindowsSyslog.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,125 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.mx.2/example.cpp.backends.mx.2.cpp |
|
||||
* |
|
||||
* Purpose: Implementation file for the example.cpp.backends.mx.2 project. |
|
||||
* |
|
||||
* Created: 19th September 2008 |
|
||||
* Updated: 11th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/pantheios.hpp>
|
|
||||
#include <pantheios/inserters/args.hpp>
|
|
||||
#include <pantheios/frontends/fe.simple.h>
|
|
||||
#include <pantheios/backends/be.N.h>
|
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/backends/bec.fprintf.h>
|
|
||||
# include <pantheios/backends/bec.syslog.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/backends/bec.WindowsConsole.h>
|
|
||||
# include <pantheios/backends/bec.WindowsSyslog.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* STLSoft Header Files */ |
|
||||
#include <stlsoft/stlsoft.h>
|
|
||||
|
|
||||
/* Standard C++ Header Files */ |
|
||||
#include <exception>
|
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdio.h>
|
|
||||
#include <stdlib.h>
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Globals |
|
||||
*/ |
|
||||
|
|
||||
extern "C" const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.backends.mx.2"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x)
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Logging management |
|
||||
*/ |
|
||||
|
|
||||
enum |
|
||||
{ |
|
||||
beid_Console = 1, |
|
||||
beid_Syslog = 2 |
|
||||
}; |
|
||||
|
|
||||
pan_be_N_t PAN_BE_N_BACKEND_LIST[] = |
|
||||
{ |
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Console, pantheios_be_fprintf, PANTHEIOS_BE_N_F_IGNORE_NONMATCHED_CUSTOM28_ID), |
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Syslog, pantheios_be_syslog, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), |
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Console, pantheios_be_WindowsConsole, PANTHEIOS_BE_N_F_IGNORE_NONMATCHED_CUSTOM28_ID), |
|
||||
PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Syslog, pantheios_be_WindowsSyslog, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), |
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
PANTHEIOS_BE_N_TERMINATOR_ENTRY |
|
||||
}; |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
static int main_(int argc, char** argv) |
|
||||
{ |
|
||||
// This goes only to debugger
|
|
||||
#ifndef PANTHEIOS_USE_WIDE_STRINGS
|
|
||||
pantheios::log_NOTICE(PSTR("main("), pantheios::args(argc, argv), PSTR(")")); |
|
||||
#else /* ? !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
STLSOFT_SUPPRESS_UNUSED(argc); STLSOFT_SUPPRESS_UNUSED(argv); |
|
||||
#endif /* !PANTHEIOS_USE_WIDE_STRINGS */
|
|
||||
|
|
||||
|
|
||||
// This goes to console and debugger
|
|
||||
pantheios::log(pantheios::notice(beid_Syslog), PSTR("Isn't targeted multiplexing great?!")); |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
int main(int argc, char** argv) |
|
||||
{ |
|
||||
try |
|
||||
{ |
|
||||
return main_(argc, argv); |
|
||||
} |
|
||||
catch(std::bad_alloc&) |
|
||||
{ |
|
||||
pantheios::log(pantheios::alert, PSTR("out of memory")); |
|
||||
} |
|
||||
catch(std::exception& x) |
|
||||
{ |
|
||||
pantheios::log_CRITICAL(PSTR("Exception: "), x); |
|
||||
} |
|
||||
catch(...) |
|
||||
{ |
|
||||
pantheios::logputs(pantheios::emergency, PSTR("Unhandled unknown error")); |
|
||||
} |
|
||||
|
|
||||
return EXIT_FAILURE; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,42 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/backends/example.cpp.backends.mx.2/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.mx.2 project. |
|
||||
* |
|
||||
* Created: 19th September 2008 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <pantheios/implicit_link/be.N.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX)
|
|
||||
# include <pantheios/implicit_link/bec.fprintf.h>
|
|
||||
# include <pantheios/implicit_link/bec.syslog.h>
|
|
||||
#elif defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
||||
# include <pantheios/implicit_link/bec.WindowsConsole.h>
|
|
||||
# include <pantheios/implicit_link/bec.WindowsSyslog.h>
|
|
||||
#else /* ? OS */
|
|
||||
# error Platform not discriminated
|
|
||||
#endif /* OS */
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,66 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/contract/example.cpp.contract.PANTHEIOS_ASSERT/example.cpp.contract.PANTHEIOS_ASSERT.cpp |
|
||||
* |
|
||||
* Purpose: C++ example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of Pantheios inserter for thread ids |
|
||||
* - use of pantheios::logputs() in bail-out conditions |
|
||||
* |
|
||||
* Created: 8th May 2009 |
|
||||
* Updated: 7th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/
|
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/assert.h>
|
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdlib.h>
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Compiler compatibility |
|
||||
*/ |
|
||||
|
|
||||
#ifdef STLSOFT_COMPILER_IS_BORLAND
|
|
||||
# pragma warn -8008
|
|
||||
# pragma warn -8066
|
|
||||
#endif
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using
|
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.contract.PANTHEIOS_ASSERT"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
int i = pantheios::init(); |
|
||||
|
|
||||
if(i >= 0) |
|
||||
{ |
|
||||
PANTHEIOS_ASSERT(true); |
|
||||
|
|
||||
PANTHEIOS_ASSERT(false); |
|
||||
|
|
||||
pantheios::uninit(); |
|
||||
} |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,33 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/contract/example.cpp.contract.PANTHEIOS_ASSERT/implicit_link.cpp |
|
||||
* |
|
||||
* Purpose: Implicit link file for the example.cpp.contract.PANTHEIOS_ASSERT project. |
|
||||
* |
|
||||
* Created: 8th May 2009 |
|
||||
* Updated: 6th December 2010 |
|
||||
* |
|
||||
* Status: Wizard-generated |
|
||||
* |
|
||||
* License: (Licensed under the Synesis Software Open License) |
|
||||
* |
|
||||
* Copyright (c) 2008-2010, Synesis Software Pty Ltd. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* www: http://www.synesis.com.au/software
|
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/implicit_link/core.h>
|
|
||||
#include <pantheios/implicit_link/fe.simple.h>
|
|
||||
#include <pantheios/implicit_link/be.console.h>
|
|
||||
|
|
||||
/* UNIXem Header Files */ |
|
||||
#include <platformstl/platformstl.h>
|
|
||||
#if defined(PLATFORMSTL_OS_IS_UNIX) && \
|
|
||||
defined(_WIN32) |
|
||||
# include <unixem/implicit_link.h>
|
|
||||
#endif /* _WIN32 || _WIN64 */
|
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
@ -1,66 +0,0 @@ |
|||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* File: examples/cpp/contract/example.cpp.contract.PANTHEIOS_MESSAGE_ASSERT/example.cpp.contract.PANTHEIOS_MESSAGE_ASSERT.cpp |
|
||||
* |
|
||||
* Purpose: C++ example program for Pantheios. Demonstrates: |
|
||||
* |
|
||||
* - use of Pantheios inserter for thread ids |
|
||||
* - use of pantheios::logputs() in bail-out conditions |
|
||||
* |
|
||||
* Created: 8th May 2009 |
|
||||
* Updated: 7th December 2010 |
|
||||
* |
|
||||
* www: http://www.pantheios.org/
|
|
||||
* |
|
||||
* License: This source code is placed into the public domain 2006 |
|
||||
* by Synesis Software Pty Ltd. There are no restrictions |
|
||||
* whatsoever to your use of the software. |
|
||||
* |
|
||||
* This software is provided "as is", and any warranties, |
|
||||
* express or implied, of any kind and for any purpose, are |
|
||||
* disclaimed. |
|
||||
* |
|
||||
* ////////////////////////////////////////////////////////////////////// */
|
|
||||
|
|
||||
|
|
||||
#define PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS // Faster compilation
|
|
||||
|
|
||||
/* Pantheios Header Files */ |
|
||||
#include <pantheios/assert.h>
|
|
||||
|
|
||||
/* Standard C Header Files */ |
|
||||
#include <stdlib.h>
|
|
||||
|
|
||||
/* /////////////////////////////////////////////////////////////////////////
|
|
||||
* Compiler compatibility |
|
||||
*/ |
|
||||
|
|
||||
#ifdef STLSOFT_COMPILER_IS_BORLAND
|
|
||||
# pragma warn -8008
|
|
||||
# pragma warn -8066
|
|
||||
#endif
|
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
/* Define the stock front-end process identity, so that it links when using
|
|
||||
* fe.N, fe.simple, etc. */ |
|
||||
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.cpp.contract.PANTHEIOS_MESSAGE_ASSERT"); |
|
||||
|
|
||||
/* ////////////////////////////////////////////////////////////////////// */ |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
int i = pantheios::init(); |
|
||||
|
|
||||
if(i >= 0) |
|
||||
{ |
|
||||
PANTHEIOS_MESSAGE_ASSERT(true, "it was true"); |
|
||||
|
|
||||
PANTHEIOS_MESSAGE_ASSERT(false, "it was false"); |
|
||||
|
|
||||
pantheios::uninit(); |
|
||||
} |
|
||||
|
|
||||
return EXIT_SUCCESS; |
|
||||
} |
|
||||
|
|
||||
/* ///////////////////////////// end of file //////////////////////////// */ |
|
Some files were not shown because too many files changed in this diff
Reference in new issue
xxxxxxxxxx