diff --git a/mediachanger/MediaChangerFacade.cpp b/mediachanger/MediaChangerFacade.cpp index 9322d4163a7e39eee2bae4b62a3516d5b2b514f7..297c10218d5b3ea4bed9b25f4c4d519dceceea60 100644 --- a/mediachanger/MediaChangerFacade.cpp +++ b/mediachanger/MediaChangerFacade.cpp @@ -17,7 +17,6 @@ */ #include "common/exception/Exception.hpp" -#include "mediachanger/AcsProxyZmqSingleton.hpp" #include "mediachanger/MediaChangerFacade.hpp" namespace cta { @@ -28,6 +27,7 @@ namespace mediachanger { //------------------------------------------------------------------------------ MediaChangerFacade::MediaChangerFacade(log::Logger &log, void *const zmqContext) throw(): m_zmqContext(zmqContext), + m_acsProxy(zmqContext), m_mmcProxy(log) { } @@ -94,12 +94,7 @@ MediaChangerProxy &MediaChangerFacade::getProxy(const TapeLibraryType libraryTyp try { switch(libraryType) { case TAPE_LIBRARY_TYPE_ACS: - // Using AcsProxyZmqSingleton instead of simply having a AcsProxyZmq - // member variable (e.g. m_acsProxy) in order to only instantiate an - // AcsProxyZmq object if necessary. Instantiating such as object - // results in a one off memory leak related to ZMQ that would cause - // valgrind to fail on simple CTA unit-tests. - return AcsProxyZmqSingleton::instance(m_zmqContext); + return m_acsProxy; case TAPE_LIBRARY_TYPE_MANUAL: return m_mmcProxy; case TAPE_LIBRARY_TYPE_SCSI: diff --git a/mediachanger/MediaChangerFacade.hpp b/mediachanger/MediaChangerFacade.hpp index f2e918d3aca14b5150eb7e09492ec013c62e0787..6403200bdeaef33c80999b7772cad44b9b59ec65 100644 --- a/mediachanger/MediaChangerFacade.hpp +++ b/mediachanger/MediaChangerFacade.hpp @@ -19,6 +19,7 @@ #pragma once #include "common/log/Logger.hpp" +#include "mediachanger/AcsProxyZmq.hpp" #include "mediachanger/LibrarySlot.hpp" #include "mediachanger/MediaChangerProxy.hpp" #include "mediachanger/MmcProxyLog.hpp" @@ -100,6 +101,11 @@ private: */ void *m_zmqContext; + /** + * ACS media changer proxy. + */ + AcsProxyZmq m_acsProxy; + /** * Manual media changer proxy. */