diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2007-01-17 18:11:11 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2007-01-17 18:11:11 +0000 |
commit | e124e693704faa56ecf32ce2a243d0c3fa3a5e6e (patch) | |
tree | 071dcaa6edc458f9371289976a4537880e5bb005 /cpp/demo/Ice/async/WorkQueue.h | |
parent | Changed async demo (diff) | |
download | ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.bz2 ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.xz ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.zip |
Changed demo
Diffstat (limited to 'cpp/demo/Ice/async/WorkQueue.h')
-rw-r--r-- | cpp/demo/Ice/async/WorkQueue.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/cpp/demo/Ice/async/WorkQueue.h b/cpp/demo/Ice/async/WorkQueue.h new file mode 100644 index 00000000000..9147b2f615d --- /dev/null +++ b/cpp/demo/Ice/async/WorkQueue.h @@ -0,0 +1,46 @@ +// ********************************************************************** +// +// 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. +// +// ********************************************************************** + +#ifndef WORK_QUEUE_H +#define WORK_QUEUE_H + +#include <Hello.h> +#include <IceUtil/Thread.h> +#include <IceUtil/Monitor.h> +#include <IceUtil/Mutex.h> + +#include <list> + +class WorkQueue : public IceUtil::Thread +{ +public: + + WorkQueue(); + + virtual void run(); + + void add(const Demo::AMD_Hello_sayHelloPtr&, int); + void destroy(); + +private: + + struct CallbackEntry + { + Demo::AMD_Hello_sayHelloPtr cb; + int delay; + }; + + IceUtil::Monitor<IceUtil::Mutex> _monitor; + std::list<CallbackEntry> _callbacks; + bool _done; +}; + +typedef IceUtil::Handle<WorkQueue> WorkQueuePtr; + +#endif |