diff options
Diffstat (limited to 'cpp/demo/Ice/session/SessionFactoryI.cpp')
-rw-r--r-- | cpp/demo/Ice/session/SessionFactoryI.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/cpp/demo/Ice/session/SessionFactoryI.cpp b/cpp/demo/Ice/session/SessionFactoryI.cpp new file mode 100644 index 00000000000..5fbb606274f --- /dev/null +++ b/cpp/demo/Ice/session/SessionFactoryI.cpp @@ -0,0 +1,34 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2011 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 <SessionFactoryI.h> + +using namespace std; +using namespace Demo; + +SessionFactoryI::SessionFactoryI(const ReapTaskPtr& reapTask) : + _reaper(reapTask) +{ +} + +SessionPrx +SessionFactoryI::create(const string& name, const Ice::Current& c) +{ + SessionIPtr session = new SessionI(name); + SessionPrx proxy = SessionPrx::uncheckedCast(c.adapter->addWithUUID(session)); + _reaper->add(proxy, session); + return proxy; +} + +void +SessionFactoryI::shutdown(const Ice::Current& c) +{ + cout << "Shutting down..." << endl; + c.adapter->getCommunicator()->shutdown(); +} |