Mercurial > hg > ucis.core
comparison Pml/IPmlCommunicator.cs @ 0:3ab940a0c7a0
Initial commit
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Tue, 11 Sep 2012 16:28:53 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:3ab940a0c7a0 |
---|---|
1 using System; | |
2 using System.Collections.Generic; | |
3 using System.Text; | |
4 | |
5 namespace UCIS.Pml { | |
6 public class PmlCallReceivedEventArgs : EventArgs { | |
7 private PmlElement _request; | |
8 private PmlElement _reply; | |
9 private UInt32 _sid; | |
10 private bool _wantReply; | |
11 | |
12 internal PmlCallReceivedEventArgs(PmlElement request, bool wantReply, UInt32 sid) { | |
13 _request = request; | |
14 _wantReply = wantReply; | |
15 _sid = sid; | |
16 _reply = null; | |
17 } | |
18 public bool WantReply { | |
19 get { return _wantReply; } | |
20 } | |
21 internal UInt32 SID { | |
22 get { return _sid; } | |
23 } | |
24 public PmlElement Reply { | |
25 get { return _reply; } | |
26 set { _reply = value; } | |
27 } | |
28 public PmlElement Request { | |
29 get { return _request; } | |
30 } | |
31 } | |
32 public abstract class PmlChannelRequestReceivedEventArgs : EventArgs { | |
33 public abstract IPmlChannel Accept(); | |
34 public abstract void Reject(); | |
35 public abstract PmlElement Data { get; } | |
36 } | |
37 public interface IPmlCommunicator { | |
38 event EventHandler<PmlCallReceivedEventArgs> CallReceived; | |
39 event EventHandler<PmlChannelRequestReceivedEventArgs> ChannelRequestReceived; | |
40 | |
41 void Call(PmlElement message); | |
42 PmlElement Invoke(PmlElement message); | |
43 | |
44 IAsyncResult BeginInvoke(PmlElement message, AsyncCallback callback, Object state); | |
45 PmlElement EndInvoke(IAsyncResult result); | |
46 | |
47 IPmlChannel CreateChannel(PmlElement data); | |
48 IAsyncResult BeginCreateChannel(PmlElement data, AsyncCallback callback, Object state); | |
49 IPmlChannel EndCreateChannel(IAsyncResult result); | |
50 } | |
51 } |