sessioni.cpp

来自「ICE-3.2 一个开源的中间件」· C++ 代码 · 共 80 行

CPP
80
字号
// **********************************************************************//// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.//// This copy of Ice is licensed to you under the terms described in the// ICE_LICENSE file included in this distribution.//// **********************************************************************#include <Ice/Ice.h>#include <SessionI.h>#include <TestCommon.h>using namespace std;using namespace Test;class DestroyCB : public Glacier2::AMI_SessionControl_destroy{public:    DestroyCB(const Test::AMD_Session_destroyFromClientPtr& cb) : _cb(cb)    {    }    void     ice_response()    {        _cb->ice_response();    }    void    ice_exception(const IceUtil::Exception&)    {        test(false);    }private:    Test::AMD_Session_destroyFromClientPtr _cb;};Glacier2::SessionPrxSessionManagerI::create(const string& userId, const Glacier2::SessionControlPrx& sessionControl,                        const Ice::Current& current){    if(userId == "rejectme")    {        throw Glacier2::CannotCreateSessionException("");    }    if(userId == "localexception")    {        throw Ice::ObjectNotExistException(__FILE__, __LINE__);    }    return Glacier2::SessionPrx::uncheckedCast(current.adapter->addWithUUID(new SessionI(sessionControl)));}SessionI::SessionI(const Glacier2::SessionControlPrx& sessionControl) :    _sessionControl(sessionControl){    assert(sessionControl);}voidSessionI::destroyFromClient_async(const Test::AMD_Session_destroyFromClientPtr& cb, const Ice::Current& current){    _sessionControl->destroy_async(new DestroyCB(cb));}voidSessionI::shutdown(const Ice::Current& current){    current.adapter->getCommunicator()->shutdown();}voidSessionI::destroy(const Ice::Current& current){    current.adapter->remove(current.id);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?