Salome HOME
PR: add resources/Plugin in Install
[modules/yacs.git] / src / Logger / SALOME_Logger_Server.hxx
1 //  SALOME Logger : CORBA server managing trace output
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : SALOME_Logger_Server.hxx
8 //  Author : Vasily Rusyaev
9 //  Module : SALOME
10
11 #if !defined SALOME_Logger_Server_include
12 #define SALOME_Logger_Server_include
13
14 #ifndef WNT
15 #include <fstream.h>
16 #else
17 #include <fstream>
18 #include <iosfwd>
19 #endif
20 #include <omnithread.h>
21 #include "Logger.hh"
22
23 class Logger :
24   public POA_SALOME_Logger::Logger,
25   public PortableServer::RefCountServantBase 
26 {
27 public:
28         //constructor w/o parameters
29         //all messages will be put into terminal via cout
30         Logger();
31         //constructor with parameter, filename is output file
32         //all messages will be put into special file passed as parameter
33         Logger(const char *filename);
34         virtual ~Logger();
35         //put message into one special place for all servers
36         void putMessage(const char* message);
37         void ping();
38 private:
39         //if m_putIntoFile is true all messages will be put into special 
40         //otherwise all messages will be put into terminal via cout 
41         bool m_putIntoFile;
42         //ofstream class specialized for disk file output
43 #ifndef WNT
44         ofstream m_outputFile; 
45 #else
46                 std::ofstream m_outputFile; 
47 #endif
48         //synchronisation object
49         static omni_mutex myLock;
50 };
51
52 #endif // !defined(SALOME_Logger_Server_include)