On Mon, 2008-02-25 at 15:36 +0100, Thomas Girard wrote:
> On Mon, Feb 25, 2008 at 03:23:31PM +0100, Thomas Girard wrote:
> > From a first sight, it seems to me that replacing:
> >   RefCountServantBase
> > with:
> >   ServantBase
> > 
> > in Salomé files should be enough.
> 
> So the following pipeline (modifying Salomé files, beware!), run from
> Salomé toplevel directory, should work:
>   find -type f -print0 | xargs -0 grep RefCountServantBase | cut -d: -f1 |
>     sort | uniq | xargs sed -i -e 's/RefCountServantBase/ServantBase/g'
> 
> Could you please try to compile this modified Salomé with omniORB 4.1 from
> unstable, and report if it succeeds?

Thanks for your help!  Unfortunately, it did not work. :-(

 g++ "-DPACKAGE_NAME=\"Salome2 Project\"" -DPACKAGE_TARNAME=\"salome\" 
-DPACKAGE_VERSION=\"3.2.5\" "-DPACKAGE_STRING=\"Salome2 Project 3.2.5\"" 
-DPACKAGE_BUGREPORT=\"[EMAIL PROTECTED]" -DPACKAGE=\"salome\" 
-DVERSION=\"3.2.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 
-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 
-DHAVE_LIBDL=1 -DHAVE_LIBRT=1 -DHAVE_LIBM=1 -DHAVE_NAMESPACES= -DHAVE_PTHREAD=1 
-D__x86__=1 -D__linux__=1 -D__OSVERSION__=1 -DOMNIORB=1 -DCORBA_HAVE_POA=1 
-DCORBA_ORB_INIT_HAVE_3_ARGS=1 -DCORBA_ORB_INIT_THIRD_ARG=\"omniORB\" 
-DRM=\"/bin/rm\" -DSH=\"/bin/sh\" -DCP=\"/bin/cp\" -DRSH=\"/usr/bin/rsh\" 
-DRCP=\"/usr/bin/rcp\" -DSSH=\"/bin/false\" -DSCP=\"/bin/false\" -I. 
-I../../salome_adm/unix -I../../idl -DOMNIORB_VERSION=4 -D__x86__ -D__linux__ 
-DCOMP_CORBA_DOUBLE -DCOMP_CORBA_LONG -I/usr/include -I/usr/include/omniORB4 
-I/usr/include/COS -DHAVE_MPI2 -DHAVE_SOCKET -m64 -D_OCC64 -g -D_DEBUG_ 
-Wno-deprecated -Wparentheses -Wreturn-type -Wunused -pthread -MT 
libSalomeLoggerServer_la-SALOME_Logger_Server.lo -MD -MP -MF 
.deps/libSalomeLoggerServer_la-SALOME_Logger_Server.Tpo -c 
SALOME_Logger_Server.cxx  -fPIC -DPIC -o 
.libs/libSalomeLoggerServer_la-SALOME_Logger_Server.o
In file included from SALOME_Logger_Server.cxx:12:
SALOME_Logger_Server.hxx:26: warning: direct base ‘PortableServer::ServantBase’ 
inaccessible in ‘Logger’ due to ambiguity
SALOME_Logger_Server.hxx:26: error: no unique final overrider for ‘virtual 
void* omniServant::_downcast()’ in ‘Logger’
SALOME_Logger_Server.hxx:26: error: no unique final overrider for ‘virtual 
omniObjRef* omniServant::_do_get_interface()’ in ‘Logger’
SALOME_Logger_Server.hxx:26: error: no unique final overrider for ‘virtual void 
omniServant::_add_ref()’ in ‘Logger’
SALOME_Logger_Server.hxx:26: error: no unique final overrider for ‘virtual void 
omniServant::_remove_ref()’ in ‘Logger’
make[3]: *** [libSalomeLoggerServer_la-SALOME_Logger_Server.lo] Error 1

I'm attaching the .cxx and .hxx files.

This is the first "fixed" file the build encountered.  If you have any
ideas on how to proceed, I'm all ears -- and have time to work on it.

-Adam
-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/
//  SALOME Logger : CORBA server managing trace output
//
//  Copyright (C) 2003  CEA/DEN, EDF R&D
//
//  See http://www.salome-platform.org/ or email : [EMAIL PROTECTED]
//
//  File   : SALOME_Logger_Server.cxx
//  Author : Vasily Rusyaev
//  Module : SALOME

#include <iostream>
#include "SALOME_Logger_Server.hxx"
#include <SALOMEconfig.h>
#include <sys/types.h>
#ifndef __WIN32__
# include <unistd.h>
#endif

#ifdef WNT
#include <omnithread/pthread_nt.h>
#endif

omni_mutex Logger::myLock;

/////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Logger::Logger()
{
  m_putIntoFile = false;
}

Logger::Logger(const char *filename)
{
  //  m_outputFile.open( filename, ios::out | ios::trunc , filebuf::openprot);
  m_outputFile.open( filename, std::ios::out | std::ios::trunc);
  if (m_outputFile.is_open())
    m_putIntoFile = true;
  else
    m_putIntoFile = false;
}

Logger::~Logger()
{
  if (m_putIntoFile)
    m_outputFile.close();
}

void Logger::putMessage(const char* message)
{
  myLock.lock();
  if (m_putIntoFile)

	m_outputFile << message << std::flush;
  else
    std::cout << message;
  myLock.unlock();
}

void Logger::ping()
{
  //cout<<" Logger::ping() pid "<< getpid()<<endl;
}
//  SALOME Logger : CORBA server managing trace output
//
//  Copyright (C) 2003  CEA/DEN, EDF R&D
//
//  See http://www.salome-platform.org/ or email : [EMAIL PROTECTED]
//
//  File   : SALOME_Logger_Server.hxx
//  Author : Vasily Rusyaev
//  Module : SALOME

#if !defined SALOME_Logger_Server_include
#define SALOME_Logger_Server_include

#ifndef WNT
#include <fstream.h>
#else
#include <fstream>
#include <iosfwd>
#endif
#include <omnithread.h>
#include "Logger.hh"

class Logger :
  public POA_SALOME_Logger::Logger,
  public PortableServer::ServantBase 
{
public:
        //constructor w/o parameters
        //all messages will be put into terminal via cout
	Logger();
        //constructor with parameter, filename is output file
        //all messages will be put into special file passed as parameter
	Logger(const char *filename);
	virtual ~Logger();
	//put message into one special place for all servers
	void putMessage(const char* message);
        void ping();
private:
	//if m_putIntoFile is true all messages will be put into special 
	//otherwise all messages will be put into terminal via cout 
        bool m_putIntoFile;
	//ofstream class specialized for disk file output
#ifndef WNT
        ofstream m_outputFile; 
#else
		std::ofstream m_outputFile; 
#endif
	//synchronisation object
	static omni_mutex myLock;
};

#endif // !defined(SALOME_Logger_Server_include)

Reply via email to