public void ConvertTekiInfo(string path) { List <string> lineList = this.getLineList(path); FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(1); FlatBuffers.Offset <TekiInfoTable.Data>[] data = new FlatBuffers.Offset <TekiInfoTable.Data> [lineList.Count]; int count = 0; foreach (string line in lineList) { string[] values = line.Split(','); int id = int.Parse(values[0]); TekiDefine.MoveType moveType = (TekiDefine.MoveType)Enum.Parse(typeof(TekiDefine.MoveType), values[1]); int messageEventId = int.Parse(values[2]); data[count] = TekiInfoTable.Data.CreateData(fbb, id, moveType, messageEventId); ++count; } FlatBuffers.VectorOffset infoVec = TekiInfoTable.DataList.CreateDatasVector(fbb, data); FlatBuffers.Offset <TekiInfoTable.DataList> reslut = TekiInfoTable.DataList.CreateDataList(fbb, infoVec); TekiInfoTable.DataList.FinishDataListBuffer(fbb, reslut); using (System.IO.FileStream fs = new System.IO.FileStream("teki-info-table.bin", System.IO.FileMode.Create)) { using (System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs)) { bw.Write(fbb.SizedByteArray()); } } }
public void ConvertMessageEvent(string path) { List <string> lineList = this.getLineList(path); FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(1); FlatBuffers.Offset <MessageEventTable.Data>[] data = new FlatBuffers.Offset <MessageEventTable.Data> [lineList.Count]; int count = 0; foreach (string line in lineList) { string[] values = line.Split(','); int id = int.Parse(values[0]); int checkId = int.Parse(values[1]); int messageId = int.Parse(values[2]); int selectId = int.Parse(values[3]); int flag = int.Parse(values[4]); int addTime = int.Parse(values[5]); data[count] = MessageEventTable.Data.CreateData(fbb, id, checkId, messageId, selectId, flag, addTime); ++count; } FlatBuffers.VectorOffset infoVec = MessageEventTable.DataList.CreateDatasVector(fbb, data); FlatBuffers.Offset <MessageEventTable.DataList> reslut = MessageEventTable.DataList.CreateDataList(fbb, infoVec); MessageEventTable.DataList.FinishDataListBuffer(fbb, reslut); using (System.IO.FileStream fs = new System.IO.FileStream("message-event-table.bin", System.IO.FileMode.Create)) { using (System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs)) { bw.Write(fbb.SizedByteArray()); } } }
public void ConvertMessageAnswer(string path) { List <string> lineList = this.getLineList(path); FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(1); FlatBuffers.Offset <MessageAnswerTable.Data>[] data = new FlatBuffers.Offset <MessageAnswerTable.Data> [lineList.Count]; int count = 0; foreach (string line in lineList) { string[] values = line.Split(','); int id = int.Parse(values[0]); int selectId = int.Parse(values[1]); int[] answerList = new int[values.Length - 1]; for (int i = 2; i < values.Length; ++i) { string message = values[i].Replace("\\n", "\n");; answerList[i - 2] = int.Parse(values[i]); } data[count] = MessageAnswerTable.Data.CreateData(fbb, id, selectId, MessageAnswerTable.Data.CreateAnswerVector(fbb, answerList)); ++count; } FlatBuffers.VectorOffset infoVec = MessageAnswerTable.DataList.CreateDatasVector(fbb, data); FlatBuffers.Offset <MessageAnswerTable.DataList> reslut = MessageAnswerTable.DataList.CreateDataList(fbb, infoVec); MessageAnswerTable.DataList.FinishDataListBuffer(fbb, reslut); using (System.IO.FileStream fs = new System.IO.FileStream("message-answer-table.bin", System.IO.FileMode.Create)) { using (System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs)) { bw.Write(fbb.SizedByteArray()); } } }
static FlatBuffersObject.PersonVector SerializeArrayFlatBuffers() { Console.WriteLine("FlatBuffers"); FlatBuffersObject.PersonVector copy = default(FlatBuffersObject.PersonVector); byte[] bytes = null; Func <FlatBuffers.FlatBufferBuilder, FlatBuffers.Offset <FlatBuffersObject.Person>[]> makeVector = b => { var array = new FlatBuffers.Offset <FlatBuffersObject.Person> [1000]; var count = 0; for (int j = 1000; j < 2000; j++) { var person = FlatBuffersObject.Person.CreatePerson(b, j, b.CreateString("Windows"), b.CreateString("Server"), FlatBuffersObject.Sex.Female); array[count++] = person; } return(array); }; using (new Measure("Serialize")) { for (int i = 0; i < Iteration; i++) { var builder = new FlatBuffers.FlatBufferBuilder(1); var personVector = FlatBuffersObject.PersonVector.CreatePersonVector(builder, FlatBuffersObject.PersonVector.CreateListVector(builder, makeVector(builder))); builder.Finish(personVector.Value); bytes = builder.SizedByteArray(); } } using (new Measure("Deserialize")) { for (int i = 0; i < Iteration; i++) { copy = FlatBuffersObject.PersonVector.GetRootAsPersonVector(new FlatBuffers.ByteBuffer(bytes)); } } using (new Measure("ReSerialize")) { for (int i = 0; i < Iteration; i++) { var bb = copy.ByteBuffer; var newbytes = new byte[bb.Length]; Buffer.BlockCopy(bb.Data, 0, newbytes, 0, bb.Length); } } if (!dryRun) { Console.WriteLine(string.Format("{0,15} {1}", "Binary Size", ToHumanReadableSize(bytes.Length))); } return(copy); }
public void ConvertEvent(string dst, string path) { List <string> lineList = this.getLineList(path); FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(1); FlatBuffers.Offset <EventTable.Data>[] data = new FlatBuffers.Offset <EventTable.Data> [lineList.Count]; int count = 0; foreach (string line in lineList) { string[] values = line.Split(','); int id = int.Parse(values[0]); int bitNum = values.Length - 1; int byteNum = ((bitNum - 1) / 8) + 1; byte[] flag = new byte[byteNum]; int byteNo = -1; for (int i = 0; i < byteNum; ++i) { flag[i] = 0; } for (int i = 0; i < bitNum; ++i) { if ((i % 8) == 0) { ++byteNo; } flag[byteNo] |= (byte)(int.Parse(values[1 + i]) << (i % 8)); } data[count] = EventTable.Data.CreateData(fbb, id, EventTable.Data.CreateFlagVector(fbb, flag)); ++count; } FlatBuffers.VectorOffset infoVec = EventTable.DataList.CreateDatasVector(fbb, data); FlatBuffers.Offset <EventTable.DataList> reslut = EventTable.DataList.CreateDataList(fbb, infoVec); EventTable.DataList.FinishDataListBuffer(fbb, reslut); using (System.IO.FileStream fs = new System.IO.FileStream(dst, System.IO.FileMode.Create)) { using (System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs)) { bw.Write(fbb.SizedByteArray()); } } }
public void ConvertMessage(string path) { List <string> lineList = this.getLineList(path); FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(1); FlatBuffers.Offset <MessageTable.Data>[] data = new FlatBuffers.Offset <MessageTable.Data> [lineList.Count]; int count = 0; foreach (string line in lineList) { string[] works = line.Split(','); List <string> values = new List <string>(); int id = int.Parse(works[0]); for (int i = 1; i < works.Length; ++i) { if (string.IsNullOrEmpty(works[i])) { break; } values.Add(works[i]); } FlatBuffers.StringOffset[] messageList = new FlatBuffers.StringOffset[values.Count]; for (int i = 0; i < values.Count; ++i) { string message = values[i].Replace("\\n", "\n");; messageList[i] = fbb.CreateString(message); } data[count] = MessageTable.Data.CreateData(fbb, id, MessageTable.Data.CreateMessageVector(fbb, messageList)); ++count; } FlatBuffers.VectorOffset infoVec = MessageTable.DataList.CreateDatasVector(fbb, data); FlatBuffers.Offset <MessageTable.DataList> reslut = MessageTable.DataList.CreateDataList(fbb, infoVec); MessageTable.DataList.FinishDataListBuffer(fbb, reslut); using (System.IO.FileStream fs = new System.IO.FileStream("message-table.bin", System.IO.FileMode.Create)) { using (System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs)) { bw.Write(fbb.SizedByteArray()); } } }