-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SALOME_Component)
#include CORBA_SERVER_HEADER(SALOME_Session)
-class SALOME_NamingService;
+
+#include <memory>
class QMutex;
class QWaitCondition;
+class SALOME_NamingService_Abstract;
-class SESSION_EXPORT SALOME_Session_i: public virtual POA_SALOME::Session,
- public virtual PortableServer::ServantBase
+class SESSION_EXPORT SALOME_Session_i : public virtual POA_SALOME::Session, public virtual PortableServer::ServantBase
{
public:
- SALOME_Session_i(int argc,
- char ** argv,
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- QMutex* GUIMutex,
- QWaitCondition* GUILauncher);
+ SALOME_Session_i(int argc, char ** argv, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, QMutex* GUIMutex, QWaitCondition* GUILauncher);
+ SALOME_Session_i(int argc, char ** argv, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, QMutex* GUIMutex, QWaitCondition* GUILauncher, SALOME_NamingService_Abstract *NS);
~SALOME_Session_i();
//! Launch Graphical User Interface
//! Unregister the servant from Naming Service
void NSunregister();
- CORBA::Long GetActiveStudyId();
-
void ping(){};
CORBA::Long getPID();
char* getHostname();
//! Restors a visual state of the study at theSavePoint
bool restoreVisualState(CORBA::Long theSavePoint);
+ //! Get list of selected entities
+ SALOME::StringSeq* getSelection();
+
//! Emit a qt signal from the session GUI desktop window.
void emitMessage(const char* theMessage);
void emitMessageOneWay(const char* theMessage);
protected:
//! Naming service interface
- SALOME_NamingService *_NS;
+ std::unique_ptr<SALOME_NamingService_Abstract> _NS;
int _argc ;
char **_argv;
CORBA::Boolean _isGUI ;
QMutex* _GUIMutex ;
QWaitCondition* _GUILauncher;
- int _runningStudies ;
CORBA::ORB_var _orb;
PortableServer::POA_var _poa;
bool _isShuttingDown;
+
+ void deleteContainersinNS();
};
#endif