1 /* 2 * hunt-amqp-client: AMQP Client Library for D Programming Language. Support for RabbitMQ and other AMQP Server. 3 * 4 * Copyright (C) 2018-2019 HuntLabs 5 * 6 * Website: https://www.huntlabs.net 7 * 8 * Licensed under the Apache-2.0 License. 9 * 10 */ 11 12 module hunt.amqp.client.WriteStream; 13 14 import hunt.amqp.client.StreamBase; 15 import hunt.amqp.Handler; 16 import hunt.Object; 17 import hunt.Exceptions; 18 19 interface WriteStream(T) : StreamBase { 20 21 WriteStream!T exceptionHandler(Handler!Throwable var1); 22 23 // Future<Void> write(T var1); 24 25 void write(T var1, Handler!Void var2); 26 27 //default Future<Void> end() { 28 // Promise<Void> promise = Promise.promise(); 29 // this.end((Handler)promise); 30 // return promise.future(); 31 //} 32 33 void end(Handler!Void var1); 34 35 //default Future<Void> end(T data) { 36 // Promise<Void> provide = Promise.promise(); 37 // this.end(data, provide); 38 // return provide.future(); 39 //} 40 41 final void end(T data, Handler!Void handler) { 42 if (handler !is null) 43 { 44 this.write(data, new class Handler!Void { 45 void handle(Void var1) 46 { 47 if(var1 !is null) 48 { 49 end(handler); 50 }else 51 { 52 handler.handle(var1); 53 } 54 } 55 56 }); 57 //this.write(data, (ar) -> { 58 // if (ar.succeeded()) { 59 // this.end(handler); 60 // } else { 61 // handler.handle(ar); 62 // } 63 // 64 //}); 65 } else { 66 // end(data); 67 implementationMissing(false); 68 } 69 } 70 71 WriteStream!T setWriteQueueMaxSize(int var1); 72 73 bool writeQueueFull(); 74 75 WriteStream!T drainHandler(Handler!Void var1); 76 77 } 78