diff --git a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx index 3ccda05b67dfe9fa63af78ea5b0376e4cbb40eb2..7124fab87e0f382a44bbe3e91b31d29eb9cbc082 100644 --- a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx +++ b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.cxx @@ -29,7 +29,7 @@ ByteStreamEventStorageOutputSvc::ByteStreamEventStorageOutputSvc( const std::string& name, ISvcLocator* pSvcLocator) - : ByteStreamOutputSvc(name, pSvcLocator) { + : base_class(name, pSvcLocator) { } @@ -445,11 +445,17 @@ ByteStreamEventStorageOutputSvc::updateDataWriterParameters( StatusCode ByteStreamEventStorageOutputSvc::queryInterface( const InterfaceID& riid, void** ppvInterface) { + + if ( !ppvInterface ) return StatusCode::FAILURE; + + // find indirect interfaces : if (ByteStreamOutputSvc::interfaceID().versionMatch(riid)) { *ppvInterface = dynamic_cast<ByteStreamOutputSvc*>(this); + } else if (base_class::queryInterface(riid, ppvInterface).isSuccess()) { + return StatusCode::SUCCESS; } else { // Interface is not directly available: try out a base class - ATH_CHECK(::AthService::queryInterface(riid, ppvInterface)); + return ::AthService::queryInterface(riid, ppvInterface); } addRef(); return StatusCode::SUCCESS; diff --git a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h index cf2bc19a2052f1aca3beb191499454cd0f7c25e3..9f768e3c4811591dbea34c87abe84303a2d84ba7 100644 --- a/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h +++ b/Event/ByteStreamCnvSvc/src/ByteStreamEventStorageOutputSvc.h @@ -48,11 +48,11 @@ class ByteStreamMetadata; * This class implements the interface ByteStreamOutputSvc for the conversion * service to write the output to a file. **/ -class ByteStreamEventStorageOutputSvc: - public ByteStreamOutputSvc, - virtual public IIoComponent { +class ByteStreamEventStorageOutputSvc : + public extends< ByteStreamOutputSvc, IIoComponent > { public: - //using extends::extends; + using extends::extends; + /// Constructors: ByteStreamEventStorageOutputSvc( const std::string& name, ISvcLocator* pSvcLocator);