summaryrefslogtreecommitdiff
path: root/cpp/demo/Ice/async/WorkQueue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/demo/Ice/async/WorkQueue.cpp')
-rw-r--r--cpp/demo/Ice/async/WorkQueue.cpp107
1 files changed, 0 insertions, 107 deletions
diff --git a/cpp/demo/Ice/async/WorkQueue.cpp b/cpp/demo/Ice/async/WorkQueue.cpp
deleted file mode 100644
index e4a3827af7e..00000000000
--- a/cpp/demo/Ice/async/WorkQueue.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 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 <WorkQueue.h>
-
-using namespace std;
-
-WorkQueue::WorkQueue() :
- _done(false)
-{
-}
-
-void
-WorkQueue::run()
-{
- IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
-
- while(!_done)
- {
- if(_callbacks.size() == 0)
- {
- _monitor.wait();
- }
-
- if(_callbacks.size() != 0)
- {
- //
- // Get next work item.
- //
- CallbackEntry entry = _callbacks.front();
-
- //
- // Wait for the amount of time indicated in delay to
- // emulate a process that takes a significant period of
- // time to complete.
- //
- _monitor.timedWait(IceUtil::Time::milliSeconds(entry.delay));
-
- if(!_done)
- {
- //
- // Print greeting and send response.
- //
- _callbacks.pop_front();
- cout << "Belated Hello World!" << endl;
- entry.cb->ice_response();
- }
- }
- }
-
- //
- // Throw exception for any outstanding requests.
- //
- list<CallbackEntry>::const_iterator p;
- for(p = _callbacks.begin(); p != _callbacks.end(); ++p)
- {
- (*p).cb->ice_exception(Demo::RequestCanceledException());
- }
-}
-
-void
-WorkQueue::add(const Demo::AMD_Hello_sayHelloPtr& cb, int delay)
-{
- IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
-
- if(!_done)
- {
- //
- // Add work item.
- //
- CallbackEntry entry;
- entry.cb = cb;
- entry.delay = delay;
-
- if(_callbacks.size() == 0)
- {
- _monitor.notify();
- }
- _callbacks.push_back(entry);
- }
- else
- {
- //
- // Destroyed, throw exception.
- //
- cb->ice_exception(Demo::RequestCanceledException());
- }
-}
-
-void
-WorkQueue::destroy()
-{
- IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
-
- //
- // Set done flag and notify.
- //
- _done = true;
- _monitor.notify();
-}