Returns True if the %container has been killed
*/
boolean Kill_impl() ;
+/*!
+ Returns the hostname of the container
+*/
+ string getHostName();
+/*!
+ Returns the PID of the container
+*/
+ long getPID();
};
/*! \brief Interface of the %component
AC_SUBST(OMNIORB_IDL)
OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
- OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin,lib,"`
-
- OMNIORB_ROOT=`echo ${OMNIORB_BIN} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
- OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ OMNIORB_ROOT=${OMNIORB_BIN}
+ # one-level up
+ OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ #
+ #
+ if test -d $OMNIORB_ROOT/include ; then
+ # if $OMNIORB_ROOT/include exists, there are a lot of chance that
+ # this is omniORB4.x installed via configure && make && make install
+ OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"`
+ OMNIORB_VERSION=4
+ else
+ # omniORB has been installed old way
+ OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"`
+ # one-level up again
+ OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+ if test -d $OMNIORB_ROOT/include/omniORB4 ; then
+ OMNIORB_VERSION=4
+ else
+ OMNIORB_VERSION=3
+ fi
+ fi
AC_SUBST(OMNIORB_ROOT)
- OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB3 -I$OMNIORB_ROOT/include/COS"
-dnl OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB4 -I$OMNIORB_ROOT/include/COS"
+ OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS"
AC_SUBST(OMNIORB_INCLUDES)
ENABLE_PTHREADS
- OMNIORB_CXXFLAGS=
+ OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION"
case $build_cpu in
sparc*)
AC_DEFINE(__sparc__)
AC_CHECK_LIB(nsl,gethostbyname, LIBS="-lnsl $LIBS",,)
LIBS_old=$LIBS
- OMNIORB_LIBS="$OMNIORB_LDFLAGS -lomniORB3 -ltcpwrapGK -lomniDynamic3 -lomnithread -lCOS3 -lCOSDynamic3"
-dnl OMNIORB_LIBS="$OMNIORB_LDFLAGS -lomniORB4 -lomniDynamic4 -lomnithread -lCOS4 -lCOSDynamic4"
+ OMNIORB_LIBS="$OMNIORB_LDFLAGS"
+ OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}"
+ OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}"
+ OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}"
+ OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}"
+ OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread"
+ if test $OMNIORB_VERSION = 3 ; then
+ OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK"
+ fi
AC_SUBST(OMNIORB_LIBS)
LIBS="$OMNIORB_LIBS $LIBS"
CXXFLAGS_old=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES"
- AC_MSG_CHECKING(whether we can link with omniORB3)
- AC_CACHE_VAL(salome_cv_lib_omniorb3,[
+ AC_MSG_CHECKING(whether we can link with omniORB)
+ AC_CACHE_VAL(salome_cv_lib_omniorb,[
AC_TRY_LINK(
#include <CORBA.h>
, CORBA::ORB_var orb,
CORBA_ORB_INIT_HAVE_3_ARGS=1
AC_DEFINE(CORBA_ORB_INIT_HAVE_3_ARGS)
- CORBA_ORB_INIT_THIRD_ARG='"omniORB3"'
- AC_DEFINE(CORBA_ORB_INIT_THIRD_ARG, "omniORB3")
+ CORBA_ORB_INIT_THIRD_ARG='"omniORB"'
+ AC_DEFINE(CORBA_ORB_INIT_THIRD_ARG, "omniORB")
fi
omniORBpy_ok=no
if test "x$omniORB_ok" = "xyes"
then
- AC_MSG_CHECKING(omniORBpy (CORBA.py file available))
- if test -f ${OMNIORB_ROOT}/lib/python/CORBA.py
- then
- omniORBpy_ok=yes
- PYTHONPATH=${OMNIORB_ROOT}/lib/python:${OMNIORB_LIB}:${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}:${PYTHONPATH}
- AC_SUBST(PYTHONPATH)
+ AC_MSG_CHECKING(omniORBpy)
+ $PYTHON -c "import omniORB" &> /dev/null
+ if test $? = 0 ; then
AC_MSG_RESULT(yes)
+ omniORBpy_ok=yes
+ else
+ AC_MSG_RESULT(no, check your installation of omniORBpy)
+ omniORBpy_ok=no
fi
fi
bool activ ) :
_numInstance(0)
{
+ _pid = (long)getpid();
if(regist)
ActSigIntHandler() ;
return ;
}
}
+
+// Get the PID of the Container
+
+long Engines_Container_i::getPID() {
+ return(_pid);
+}
+
+// Get the hostName of the Container
+
+char* Engines_Container_i::getHostName() {
+ return((char*)(GetHostname().c_str()));
+}
// Kill current container
bool Kill_impl() ;
+ char* getHostName();
+ long getPID();
protected:
int _argc ;
char** _argv ;
+ long _pid;
};
import os
trace="local"
-if (os.environ["SALOME_trace"] == "with_logger"):
- trace="logger"
+if (os.environ.has_key("SALOME_trace")):
+ if (os.environ["SALOME_trace"] == "with_logger"):
+ trace="logger"
class SALOME_Trace :
def __init__(self):
#include "utilities.h"
//#include <omniORB4/CORBA.h>
-#include <omniORB3/CORBA.h>
+//##include <omniORB3/CORBA.h>
+#include <CORBA.h>
#include <vector>
#include <string>
{
try {
// Initialise the ORB.
+#if OMNIORB_VERSION >= 4
+ const char* options[][2] = { { "giopMaxMsgSize", "104857600" }, { 0, 0 } };
+ CORBA::ORB_var orb = CORBA::ORB_init( argc , argv , "omniORB4", options) ;
+#else
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB3");
omniORB::MaxMessageSize(100 * 1024 * 1024);
+#endif
// Obtain a reference to the root POA.
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
}
}
}
-
- }
+ }
catch( const SALOME_Exception &ex )
{
MESSAGE( "Communication Error : " << ex.what() );
} else if ( list_type_composants->length() > 1 ) {
SALOMEGUI_OpenWith* aDlg = new SALOMEGUI_OpenWith( this );
for (unsigned int ind = 0; ind < list_type_composants->length();ind++) {
- aDlg->addComponent( strdup(list_type_composants[ind]) );
+ QString compusername = getComponentUserName(strdup(list_type_composants[ind]));
+ if ( compusername.compare("") != 0 )
+ aDlg->addComponent( compusername );
}
int retVal = aDlg->exec();
myStudy = SALOMEDS::Study::_duplicate( study );
myListViewMap.clear();
myUseCaseMap.clear();
+ myListView=0; // must be done before setupListView(): setCornerWidget() provoque call to eventFilter
+ myUseCaseView=0; // and test myUseCaseView->viewport() before initialisation
setupListView();
}
return QTabWidget::eventFilter( o, e );
SALOMEDS::UseCaseBuilder_var UCBuilder = myStudy->GetUseCaseBuilder();
+ if (! myUseCaseView) return QTabWidget::eventFilter( o, e );
if (o == myUseCaseView->viewport()) {
if ( e->type() == QEvent::MouseButtonPress ) {
// Test if clicked on selection and start drag if necessary
#include "SALOME_Log.hxx"
using namespace std;
-SALOME_Log::SALOME_Log()
+SALOME_Log* SALOME_Log::_singleton = 0;
+
+// log line size: if too short, log line is truncated, without crash...
+char SALOME_LogStr[1024];
+
+SALOME_Log::SALOME_Log(): ostrstream(SALOME_LogStr,sizeof(SALOME_LogStr))
{
}
{
}
-SALOME_Log& SALOME_Log::Instance()
+SALOME_Log* SALOME_Log::Instance()
{
- static SALOME_Log instance;
- return instance;
+ if (_singleton == 0) _singleton = new SALOME_Log();
+ return _singleton;
}
void SALOME_Log::putMessage(std::ostream& msg)
seekp(0);
}
+
class SALOME_Log : public ostrstream
{
-public:
- virtual ~SALOME_Log();
- static Standard_EXPORT SALOME_Log& Instance();
- Standard_EXPORT void putMessage(std::ostream& msg);
-
+private:
+ static SALOME_Log* _singleton;
protected:
//disable creation of instances: force use static SALOME_Log& Instance()
SALOME_Log();
+public:
+ virtual ~SALOME_Log();
+ static Standard_EXPORT SALOME_Log* Instance();
+ Standard_EXPORT void putMessage(std::ostream& msg);
};
-
#define SLog SALOME_Log::Instance()
#endif
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(Logger)
-// class SALOME_LoggerClient : public SALOME_Log
-// {
-// protected:
-// SALOME_Logger::Logger_var m_pInterfaceLogger; // object reference on Logger server
-// };
-
SALOME_Logger::Logger_ptr m_pInterfaceLogger; // object reference on Logger server
-SALOME_Log::SALOME_Log()
+SALOME_Log* SALOME_Log::_singleton = 0;
+
+// log line size: if too short, log line is truncated, without crash...
+char SALOME_LogStr[1024];
+
+SALOME_Log::SALOME_Log(): ostrstream(SALOME_LogStr,sizeof(SALOME_LogStr))
{
cout << "SALOME_LoggerClient: constructor" << endl;
//get reference on object reference from NS
{
}
-SALOME_Log& SALOME_Log::Instance()
+SALOME_Log* SALOME_Log::Instance()
{
- static SALOME_Log instance;
- return instance;
+ if (_singleton == 0) _singleton = new SALOME_Log();
+ return _singleton;
}
void SALOME_Log::putMessage(std::ostream& msg)
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SALOMEDS)
+SALOME_Session_QThread* SALOME_Session_QThread::_singleton = 0;
+
//=============================================================================
/*! SALOME_Session_QThread
* constructor
SALOME_Session_QThread::SALOME_Session_QThread(int argc, char ** argv) : QThread()
{
+ INFOS("Creation SALOME_Session_QThread");
_qappl = 0 ;
_mw = 0 ;
_argc = argc ;
_NS = 0 ;
} ;
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+ SALOME_Session_QThread* SALOME_Session_QThread::Instance(int argc, char ** argv)
+{
+ if (_singleton == 0) _singleton = new SALOME_Session_QThread(argc, argv);
+ return _singleton;
+
+}
+
//=============================================================================
/*! run
* Creates one QApplication for the all the session life.
{
public:
- SALOME_Session_QThread(int argc, char ** argv) ;
+ static SALOME_Session_QThread* Instance(int argc, char ** argv);
//! launch the Qt main window of the GUI on a separate thread
virtual void run() ;
QApplication *_qappl ;
SALOMEGUI_Application* _mw ;
+ SALOME_Session_QThread(int argc, char ** argv);
+
+private:
+ static SALOME_Session_QThread* _singleton;
} ;
#endif
{
_argc = argc ;
_argv = argv ;
- _IAPPThread = new SALOME_Session_QThread(_argc, _argv) ;
+ _IAPPThread = SALOME_Session_QThread::Instance(_argc, _argv);
_isGUI = FALSE ;
_runningStudies= 0 ;
_orb = CORBA::ORB::_duplicate(orb) ;
{
try
{
- // const char* options[][2] = { { "giopMaxMsgSize", "104857600" }, { 0, 0 } };
- // _orb = CORBA::ORB_init( argc , argv , "omniORB4", options) ;
+#if OMNIORB_VERSION >= 4
+ const char* options[][2] = { { "giopMaxMsgSize", "104857600" }, { 0, 0 } };
+ _orb = CORBA::ORB_init( argc , argv , "omniORB4", options) ;
+#else
_orb = CORBA::ORB_init( argc , argv ) ;
//set GIOP message size equal to 50Mb for transferring brep shapes as
//sequence of bytes using C++ streams
omniORB::MaxMessageSize(100*1024*1024);
+#endif
}
catch( const CORBA::Exception &ex )
{
/* --- INFOS is always defined (without _DEBUG_): to be used for warnings, with release version --- */
-#define INFOS(msg) {SLog.putMessage(SLog<<__FILE__<<" ["<<__LINE__<<"] : "<<msg<<endl);}
-#define PYSCRIPT(msg) {SLog.putMessage(SLog<<"---PYSCRIPT--- "<<msg<<endl);}
+#define INFOS(msg) {SLog->putMessage(*SLog<<__FILE__<<" ["<<__LINE__<<"] : "<<msg<<endl);}
+#define PYSCRIPT(msg) {SLog->putMessage(*SLog<<"---PYSCRIPT--- "<<msg<<endl);}
/* --- To print date and time of compilation of current source --- */
#endif
#define INFOS_COMPILATION { \
- SLog.putMessage(\
- SLog<<__FILE__<<" ["<< __LINE__<<"] : "\
+ SLog->putMessage(\
+ *SLog<<__FILE__<<" ["<< __LINE__<<"] : "\
<< "COMPILED with " << COMPILER \
<< ", " << __DATE__ \
<< " at " << __TIME__ <<endl); }
/* --- the following MACROS are useful at debug time --- */
-#define MYTRACE SLog << "- Trace " << __FILE__ << " [" << __LINE__ << "] : "
+#define MYTRACE *SLog << "- Trace " << __FILE__ << " [" << __LINE__ << "] : "
-#define MESSAGE(msg) {SLog.putMessage( MYTRACE <<msg<<endl<<ends); }
-#define SCRUTE(var) {SLog.putMessage( MYTRACE << #var << "=" << var <<endl<<ends); }
+#define MESSAGE(msg) {SLog->putMessage( MYTRACE <<msg<<endl<<ends); }
+#define SCRUTE(var) {SLog->putMessage( MYTRACE << #var << "=" << var <<endl<<ends); }
-#define REPERE SLog << " --------------" << endl
+#define REPERE *SLog << " --------------" << endl
#define BEGIN_OF(msg) {REPERE;MYTRACE<<"Begin of: " <<msg<<endl;REPERE;}
#define END_OF(msg) {REPERE;MYTRACE<<"Normal end of: "<<msg<<endl;REPERE;}