1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//
#include <Ice/Ice.h>
#include <SessionI.h>
using namespace std;
using namespace Test;
SessionManagerI::SessionManagerI(const TestControllerIPtr& controller):
_controller(controller)
{
}
Glacier2::SessionPrx
SessionManagerI::create(const string&, const Glacier2::SessionControlPrx& sessionControl, const Ice::Current& current)
{
Glacier2::SessionPrx newSession = Glacier2::SessionPrx::uncheckedCast(
current.adapter->addWithUUID(new SessionI(sessionControl, _controller)));
_controller->addSession(SessionTuple(newSession, sessionControl));
return newSession;
}
SessionI::SessionI(const Glacier2::SessionControlPrx& sessionControl, const TestControllerIPtr& controller) :
_sessionControl(sessionControl),
_controller(controller)
{
assert(sessionControl);
}
void
SessionI::destroySession(const Ice::Current&)
{
_sessionControl->destroy();
}
void
SessionI::shutdown(const Ice::Current& current)
{
current.adapter->getCommunicator()->shutdown();
}
void
SessionI::destroy(const Ice::Current& current)
{
_controller->notifyDestroy(_sessionControl);
current.adapter->remove(current.id);
}
|