26 #include "PythonCppUtils.hxx"
28 #include "SALOMEconfig.h"
30 #include CORBA_SERVER_HEADER(SALOME_LogManager)
44 auto ServantDeleter = [](PortableServer::ServantBase *serv) {
if(serv) serv->_remove_ref(); };
56 template<
class TVar,
class TServ>
75 TServ *
getServ()
const {
return dynamic_cast<TServ *
>(
_serv.get() ); }
78 PortableServer::ObjectId_var oid =
getServ()->getPOA()->reference_to_id(
_var);
79 getServ()->getPOA()->deactivate_object(oid);
106 PyObject *
pyObj() {
return _pyExecutionLog.get(); }
107 PortableServer::POA_var getPOA();
111 const std::vector<char>&
data()
const {
return _data; }
112 void setData(std::vector<char>&& data) { _data = std::move(data); }
134 PyObject *
pyObj() {
return _pyScriptLog.get(); }
135 PortableServer::POA_var getPOA();
136 Engines::ContainerScriptExecPerfLog_ptr addExecutionSession()
override;
138 char *getCode()
override;
139 char *getName()
override;
140 const std::string&
name()
const {
return _name; }
141 const std::string&
code()
const {
return _code; }
143 void setCode(
const std::string& code) { _code = code; }
152 std::vector< ContainerScriptExecPerfLogPair >
_sessions;
164 PyObject *
pyObj() {
return _pyContLog.get(); }
165 PortableServer::POA_var getPOA();
166 char *getLogFile()
override;
167 char *getContainerEntryInNS()
override;
168 Engines::ContainerScriptPerfLog_ptr addScript(
const char *
name,
const char *code)
override;
171 void destroy()
override;
172 const std::string&
nameInNS()
const {
return _name_in_ns; }
173 const std::string&
logFile()
const {
return _log_file; }
175 void setLogFile(
const std::string& logFile) { _log_file = logFile; }
180 void destroyInternal();
186 std::vector< ContainerScriptPerfLogPair >
_scripts;
213 PyObject *
pyHelper()
const {
return _pyLogManager; }
215 void clear()
override;
216 Engines::ContainerPerfLog_ptr declareContainer(
const char *contInNS,
const char *logfile)
override;
219 void putStructInFileAtomic(
bool clearMemory,
const char *fileName)
override;
221 void setFileNamePairOfLogger(
const char *loggerFileNameA,
const char *loggerFileNameB)
override;
222 void getFileNamePairOfLogger(CORBA::String_out loggerFileNameA, CORBA::String_out loggerFileNameB)
override;
225 char *getLastVersionOfFileNameLogger()
override;
233 std::vector<char> dumpCppInternalFrmt(
bool clearMemory);
235 PyObject *_pyLogManager =
nullptr;
236 std::unique_ptr<SALOME_NamingService_Abstract>
_NS;
241 static const char NAME_IN_NS[];
static PortableServer::POA_var _poa
Definition: SALOMEDS_Study_i.cxx:70
#define SALOMELAUNCHER_EXPORT
Definition: SALOME_Launcher_defs.hxx:30
SafeLoggerActiveVersionType
Definition: SALOME_LogManager.hxx:190
Class in charge to manage life cycle of servant instance and its associated reference.
Definition: SALOME_LogManager.hxx:58
SALOME::AutoServantDeleter _serv
Definition: SALOME_LogManager.hxx:83
RefAndServant(TVar var, TServ *serv)
Definition: SALOME_LogManager.hxx:60
TVar _var
Definition: SALOME_LogManager.hxx:82
RefAndServant(const RefAndServant &other)
Definition: SALOME_LogManager.hxx:61
TVar getVar() const
Definition: SALOME_LogManager.hxx:74
TServ * getServ() const
Definition: SALOME_LogManager.hxx:75
void desactivateObjectFromPOA()
Definition: SALOME_LogManager.hxx:76
RefAndServant & operator=(const RefAndServant &other)
Definition: SALOME_LogManager.hxx:67
Definition: SALOME_LogManager.hxx:158
void setNameInNS(const std::string &name)
Definition: SALOME_LogManager.hxx:174
std::string _name_in_ns
Definition: SALOME_LogManager.hxx:184
PyObject * pyObj()
Definition: SALOME_LogManager.hxx:164
void setPyObj(PyObject *obj)
Definition: SALOME_LogManager.hxx:163
std::vector< ContainerScriptPerfLogPair > _scripts
Definition: SALOME_LogManager.hxx:186
const std::string & nameInNS() const
Definition: SALOME_LogManager.hxx:172
std::string _log_file
Definition: SALOME_LogManager.hxx:185
AutoPyRefGilSafe _pyContLog
Definition: SALOME_LogManager.hxx:182
std::size_t getNumberOfScripts() const
Definition: SALOME_LogManager.hxx:176
SALOME_ContainerPerfLog(SALOME_LogManager *father, const std::string &nameInNS, const std::string &logFile)
Definition: SALOME_LogManager.hxx:160
SALOME_LogManager * father() const
Definition: SALOME_LogManager.hxx:162
const std::string & logFile() const
Definition: SALOME_LogManager.hxx:173
void setLogFile(const std::string &logFile)
Definition: SALOME_LogManager.hxx:175
Definition: SALOME_LogManager.hxx:101
std::vector< char > _data
Definition: SALOME_LogManager.hxx:122
SALOME_ContainerScriptPerfLog * father() const
Definition: SALOME_LogManager.hxx:104
void setPyObj(PyObject *obj)
Definition: SALOME_LogManager.hxx:105
const std::vector< char > & data() const
Definition: SALOME_LogManager.hxx:111
SALOME_ContainerScriptExecPerfLog(SALOME_ContainerScriptPerfLog *father)
Definition: SALOME_LogManager.hxx:103
void clear()
Definition: SALOME_LogManager.hxx:118
PyObject * pyObj()
Definition: SALOME_LogManager.hxx:106
AutoPyRefGilSafe _pyExecutionLog
Definition: SALOME_LogManager.hxx:120
void setData(std::vector< char > &&data)
Definition: SALOME_LogManager.hxx:112
Definition: SALOME_LogManager.hxx:128
SALOME_ContainerPerfLog * father() const
Definition: SALOME_LogManager.hxx:132
void setName(const std::string &name)
Definition: SALOME_LogManager.hxx:142
void setPyObj(PyObject *obj)
Definition: SALOME_LogManager.hxx:133
std::size_t getNumberOfSessions() const
Definition: SALOME_LogManager.hxx:144
std::string _name
Definition: SALOME_LogManager.hxx:150
SALOME_ContainerScriptPerfLog(SALOME_ContainerPerfLog *father, const std::string &name, const std::string &code)
Definition: SALOME_LogManager.hxx:130
void setCode(const std::string &code)
Definition: SALOME_LogManager.hxx:143
const std::string & code() const
Definition: SALOME_LogManager.hxx:141
std::string _code
Definition: SALOME_LogManager.hxx:151
AutoPyRefGilSafe _pyScriptLog
Definition: SALOME_LogManager.hxx:148
const std::string & name() const
Definition: SALOME_LogManager.hxx:140
std::vector< ContainerScriptExecPerfLogPair > _sessions
Definition: SALOME_LogManager.hxx:152
PyObject * pyObj()
Definition: SALOME_LogManager.hxx:134
PortableServer::POA_var _poa
Definition: SALOME_LogManager.hxx:237
PortableServer::POA_var getPOA()
Definition: SALOME_LogManager.hxx:212
std::unique_ptr< SALOME_NamingService_Abstract > _NS
Definition: SALOME_LogManager.hxx:236
void versionA_IsTheLatestValidVersion() override
Definition: SALOME_LogManager.hxx:223
void versionB_IsTheLatestValidVersion() override
Definition: SALOME_LogManager.hxx:224
SALOME_SafeLoggerFileHolder _safe_logger_file_holder
Definition: SALOME_LogManager.hxx:239
std::size_t getNumberOfContainers() const
Definition: SALOME_LogManager.hxx:229
PyObject * pyHelper() const
Definition: SALOME_LogManager.hxx:213
std::vector< ContainerPerfLogPair > _containers
Definition: SALOME_LogManager.hxx:238
Definition: SALOME_NamingService_Abstract.hxx:46
Definition: SALOME_LogManager.hxx:193
void setFileNamePairOfLogger(const std::string &loggerFileNameA, const std::string &loggerFileNameB)
Definition: SALOME_LogManager.hxx:195
void getFileNamePairOfLogger(std::string &loggerFileNameA, std::string &loggerFileNameB)
Definition: SALOME_LogManager.hxx:196
void versionA_IsTheLatestValidVersion()
Definition: SALOME_LogManager.hxx:197
std::string _logger_file_a
Definition: SALOME_LogManager.hxx:201
void versionB_IsTheLatestValidVersion()
Definition: SALOME_LogManager.hxx:198
std::string _logger_file_b
Definition: SALOME_LogManager.hxx:202
SafeLoggerActiveVersionType _version_activated
Definition: SALOME_LogManager.hxx:203
std::string getLastVersionOfFileNameLogger()
Definition: SALOME_LogManager.cxx:284
Definition: SALOME_LogManager.hxx:88
virtual void leaveContainerScriptPerfLog(SALOME_ContainerScriptPerfLog &inst)=0
virtual void enterContainerPerfLog(SALOME_ContainerPerfLog &inst)=0
virtual void leaveLogManager(SALOME_LogManager &inst)=0
virtual void enterContainerScriptPerfLog(SALOME_ContainerScriptPerfLog &inst)=0
virtual void enterLogManager(SALOME_LogManager &inst)=0
virtual void leaveContainerPerfLog(SALOME_ContainerPerfLog &inst)=0
virtual void visitContainerScriptExecPerfLog(SALOME_ContainerScriptExecPerfLog &inst)=0
sequence< ContainerScriptPerfLog > ListOfContainerScriptPerfLog
Definition: SALOME_LogManager.idl:43
sequence< ContainerScriptExecPerfLog > ListOfContainerScriptExecPerfLog
Definition: SALOME_LogManager.idl:33
sequence< ContainerPerfLog > ListOfContainerPerfLog
Definition: SALOME_LogManager.idl:54
obj
Definition: batchmode_salome.py:275
poa
Definition: SALOME_ContainerPy.py:377
Definition: SALOME_LogManager.py:1
Module SALOME contains all base interfaces of SALOME Kernel.
Definition: SALOME_LockMasterImpl.hxx:29
std::unique_ptr< PortableServer::ServantBase, decltype(ServantDeleter)> AutoServantDeleter
Definition: SALOME_LogManager.hxx:45
sequence< octet > vectorOfByte
Definition: SALOME_Comm.idl:44
auto ServantDeleter
Definition: SALOME_LogManager.hxx:44
string name
Definition: pythfilter.py:56
orb
Definition: salome.py:122