1 /* 2 * MsgTrans - Message Transport Framework for DLang. Based on TCP, WebSocket, UDP transmission protocol. 3 * 4 * Copyright (C) 2019 HuntLabs 5 * 6 * Website: https://www.msgtrans.org 7 * 8 * Licensed under the Apache-2.0 License. 9 * 10 */ 11 12 module msgtrans.MessageBuffer; 13 14 import std.format; 15 import std.bitmanip; 16 17 /** 18 * 19 */ 20 class MessageBuffer 21 { 22 uint id; 23 ubyte compression; 24 uint extendLength; 25 ubyte[] data; 26 ubyte[] extend; 27 bool hasExtend; 28 29 this() { 30 id = 0; 31 compression = 0; 32 hasExtend = false; 33 extendLength = 0; 34 } 35 36 37 this(uint id, string data) { 38 this(id, cast(ubyte[])data.dup); 39 } 40 41 this(uint id, ubyte[] data) { 42 this.id = id; 43 this.data = data; 44 hasExtend = false; 45 this.extendLength = 0; 46 } 47 48 this(uint id, ubyte[] data , ubyte[] extend) { 49 this.id = id; 50 this.data = data; 51 //this.extend = extend; 52 this.extendLength = cast(int)(extend.length); 53 //this.extend = new ubyte[extendLength]; 54 this.extend = extend; 55 hasExtend = true; 56 57 } 58 59 //this(uint id, ubyte[] data, uint tagId, uint clientId) 60 //{ 61 // this.id = id; 62 // this.data = data; 63 // this.tagId = tagId; 64 // this.extendLength = uint.sizeof + uint.sizeof; 65 // this.clientId = clientId; 66 //} 67 68 override string toString() { 69 return format("id: %d, length: %d", id, data.length); 70 } 71 }