예제 #1
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		internal static Pon FromPixelportPon(PixelportPon value, bool owned, Pon parent) {
			if (value == IntPtr.Zero) {
				return null;
			} else {
				return new Pon(value, owned, parent);
			}
		}
예제 #2
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		public Stream Stream(Pon request) {
			var channelId = Lib.pixelport_send_message(this.instance, request.value);
			var stream = new Stream {
				channelId = channelId,
				app = this
			};
			this.channels[channelId] = (message) => {
				stream.SendMessage(message);
			};
			return stream;
		}
예제 #3
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		public static Pon Call(string functionName, Pon arg) {
			return FromPixelportPon(Lib.pixelport_new_call_pon(functionName, arg.value), true, null);
		}
예제 #4
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		public Task<Pon> Request(Pon request) {
			var channelId = Lib.pixelport_send_message(this.instance, request.value);
			var tcs = new TaskCompletionSource<Pon>();
			this.channels[channelId] = (message) => {
				this.channels.Remove(channelId);
				tcs.SetResult(message);
			};
			return tcs.Task;
		}
예제 #5
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		public App(Pon options) {
			this.instance = Lib.pixelport_new(options.value);
		}
예제 #6
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		internal void SendMessage(Pon message) {
			Message(message);
		}
예제 #7
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		private Pon(PixelportPon value, bool owned, Pon parent) {
			this.value = value;
			this.owned = owned;
			this.parent = parent;
		}
예제 #8
0
파일: Pixelport.cs 프로젝트: pxlp/pixelport
		public void Push(Pon item) {
			Lib.pixelport_push_pon_array_item(this.value, item.value);
		}