summaryrefslogtreecommitdiff
path: root/cpp/demo/Ice/session/SessionI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/demo/Ice/session/SessionI.cpp')
-rwxr-xr-xcpp/demo/Ice/session/SessionI.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/demo/Ice/session/SessionI.cpp b/cpp/demo/Ice/session/SessionI.cpp
index ec4ffc296ef..75569accf48 100755
--- a/cpp/demo/Ice/session/SessionI.cpp
+++ b/cpp/demo/Ice/session/SessionI.cpp
@@ -13,6 +13,8 @@
using namespace std;
using namespace Demo;
+// XXX Add using namespace Ice.
+
class HelloI : public Hello
{
public:
@@ -24,6 +26,8 @@ public:
~HelloI()
{
+ // XXX Use real output, something like "`Hello' object #xxx
+ // destroyed.", not programming language style output.
cout << _id << ": ~Hello" << endl;
}
@@ -49,6 +53,7 @@ SessionI::SessionI(const Ice::ObjectAdapterPtr& adapter, const IceUtil::Time& ti
SessionI::~SessionI()
{
+ // XXX Remove, or add user-readable comment.
cout << "~SessionI" << endl;
}
@@ -56,6 +61,7 @@ HelloPrx
SessionI::createHello(const Ice::Current&)
{
Lock sync(*this);
+ // XXX Check for destruction w/ ObjectNotExistException?
HelloPrx hello = HelloPrx::uncheckedCast(_adapter->addWithUUID(new HelloI(_nextId++)));
_objs.push_back(hello);
return hello;
@@ -65,6 +71,7 @@ void
SessionI::refresh(const Ice::Current& c)
{
Lock sync(*this);
+ // XXX Check for destruction w/ ObjectNotExistException?
_refreshTime = IceUtil::Time::now();
}
@@ -72,20 +79,27 @@ void
SessionI::destroy(const Ice::Current& c)
{
Lock sync(*this);
+ // XXX Check for destruction w/ ObjectNotExistException?
_destroy = true;
+ // XXX Add cleanup from the so-called "destroyCallback" here.
}
bool
SessionI::destroyed() const
{
+ // XXX This should only check for _destroy. A reaper thread should
+ // call destroy() if there was a timeout.
Lock sync(*this);
return _destroy || (IceUtil::Time::now() - _refreshTime) > _timeout;
}
+// XXX Get rid of this function, remove the hello objects from the
+// object adapter in destroy().
void
SessionI::destroyCallback()
{
Lock sync(*this);
+ // XXX Real output please, that is appropriate for a demo.
cout << "SessionI::destroyCallback: _destroy=" << _destroy << " timeout="
<< ((IceUtil::Time::now()-_refreshTime) > _timeout) << endl;
for(list<HelloPrx>::const_iterator p = _objs.begin(); p != _objs.end(); ++p)