summaryrefslogtreecommitdiff
path: root/cs/demo/Ice/async/QueueI.cs
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2007-01-17 18:11:11 +0000
committerDwayne Boone <dwayne@zeroc.com>2007-01-17 18:11:11 +0000
commite124e693704faa56ecf32ce2a243d0c3fa3a5e6e (patch)
tree071dcaa6edc458f9371289976a4537880e5bb005 /cs/demo/Ice/async/QueueI.cs
parentChanged async demo (diff)
downloadice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.bz2
ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.xz
ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.zip
Changed demo
Diffstat (limited to 'cs/demo/Ice/async/QueueI.cs')
-rw-r--r--cs/demo/Ice/async/QueueI.cs114
1 files changed, 0 insertions, 114 deletions
diff --git a/cs/demo/Ice/async/QueueI.cs b/cs/demo/Ice/async/QueueI.cs
deleted file mode 100644
index 15852d57a73..00000000000
--- a/cs/demo/Ice/async/QueueI.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-// **********************************************************************
-//
-// 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.
-//
-// **********************************************************************
-
-using System;
-using System.Collections;
-using Demo;
-
-public class QueueI : QueueDisp_
-{
- public override void get_async(AMD_Queue_get cb, string id, Ice.Current current)
- {
- //
- // If there is already a message in the message queue, send the
- // response immediately. Otherwise add the callback to the
- // request queue.
- //
- lock(this)
- {
- if(_messageQueue.Count != 0)
- {
- try
- {
- cb.ice_response((string)_messageQueue[0]);
- _messageQueue.RemoveAt(0);
- }
- catch(Ice.Exception ex)
- {
- Console.Error.WriteLine(ex);
- }
- }
- else
- {
- Request request = new Request();
- request.id = id;
- request.cb = cb;
- _requestQueue.Add(request);
- }
- }
- }
-
- public override void add(string message, Ice.Current current)
- {
- //
- // If there is an outstanding request in the request queue,
- // send a response. Otherwise add the message to the message
- // queue.
- //
- lock(this)
- {
- if(_requestQueue.Count != 0)
- {
- try
- {
- Request request = (Request)_requestQueue[0];
- request.cb.ice_response(message);
- }
- catch(Ice.Exception ex)
- {
- Console.Error.WriteLine(ex);
- }
- _requestQueue.RemoveAt(0);
- }
- else
- {
- _messageQueue.Add(message);
- }
- }
- }
-
- public override void cancel_async(AMD_Queue_cancel cb, string[] ids, Ice.Current current)
- {
- //
- // We send immediate response so that later call to ice_exception
- // on queued requests will not cause deadlocks.
- //
- cb.ice_response();
-
- for(int i = 0; i < ids.Length; ++i)
- {
- foreach(Request r in _requestQueue)
- {
- if(r.id.Equals(ids[i]))
- {
- try
- {
- r.cb.ice_exception(new RequestCanceledException());
- }
- catch(Ice.Exception)
- {
- // Ignore
- }
- _requestQueue.Remove(r);
- break;
- }
- }
- }
- }
-
-
- class Request
- {
- public string id;
- public AMD_Queue_get cb;
- }
-
- private ArrayList _messageQueue = new ArrayList();
- private ArrayList _requestQueue = new ArrayList();
-}