28 #include <ArmarXCore/interface/core/util/distributed/RemoteHandle/RemoteHandleControlBlock.h>
29 #include <ArmarXCore/interface/core/util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.h>
33 class ClientSideRemoteHandleControlBlock;
46 public ClientSideRemoteHandleControlBlockBase
62 template <
class IceBaseClass,
class DerivedClass>
friend class GenericFactory;
66 inline ClientSideRemoteHandleControlBlock::ClientSideRemoteHandleControlBlock(
const RemoteHandleControlBlockInterfacePrx& controlBlock,
const Ice::ObjectPrx&
object):
67 ClientSideRemoteHandleControlBlockBase(controlBlock, object)
69 assert(managedObjectProxy);
70 assert(remoteHandleControlBlockProxy);
71 if (!managedObjectProxy || !remoteHandleControlBlockProxy)
73 throw std::invalid_argument {
"Either the control block or the object proxy is null!"};
75 remoteHandleControlBlockProxy->incrementUseCount();
82 if (remoteHandleControlBlockProxy)
84 remoteHandleControlBlockProxy->decrementUseCount();
95 remoteHandleControlBlockProxy->incrementUseCount();
100 return managedObjectProxy;