public void WriteObject(BinSerializer bs) { bs.Write(Id, 1); bs.Write(Name, 2); bs.Write((byte)Kind, 3); bs.Write(0u); }
public unsafe void WriteObject(BinSerializer bs) { bs.Write(WaitHandle.ToInt64()); bs.Write(TxnPtr.ToInt64()); bs.Write(Require.RaftGroupId); bs.Write(Require.SchemaVersion); bs.Write((byte)Require.DataCF); bs.Write(Require.OverrideIfExists); bs.Write(Require.KeySize.ToInt32()); var span = new ReadOnlySpan <byte>(Require.KeyPtr.ToPointer(), Require.KeySize.ToInt32()); bs.Stream.Write(span); bs.Write(Require.RefsSize.ToInt32()); if (Require.RefsSize.ToInt32() > 0) { span = new ReadOnlySpan <byte>(Require.RefsPtr.ToPointer(), Require.RefsSize.ToInt32()); bs.Stream.Write(span); } int dataSize = Require.DataPtr == IntPtr.Zero ? 0 : NativeBytes.GetSize(Require.DataPtr); bs.Write(dataSize); if (dataSize > 0) { span = new ReadOnlySpan <byte>((Require.DataPtr + 4).ToPointer(), dataSize); bs.Stream.Write(span); } }
public void ReadObject(BinSerializer bs) { uint propIndex; do { propIndex = bs.ReadUInt32(); switch (propIndex) { case 1: Application = (ApplicationModel)bs.Deserialize(); break; case 2: Folders = bs.ReadList <ModelFolder>(); break; case 3: Models = bs.ReadList <ModelBase>(); break; case 4: SourceCodes = bs.ReadDictionary <ulong, byte[]>(); break; case 5: ServiceAssemblies = bs.ReadDictionary <string, byte[]>(); break; case 6: ViewAssemblies = bs.ReadDictionary <string, byte[]>(); break; case 7: DataStores = bs.ReadList <DataStoreInfo>(); break; case 0: break; default: throw new Exception($"Deserialize_ObjectUnknownFieldIndex: {GetType().Name} at {propIndex}"); } } while (propIndex != 0); }
void OnOpenBombReceived(EventData eventData) { byte[] bytes = (byte[])DictTool.GetValue <byte, object>(eventData.Parameters, 1); ProtoData.OpemBombS2CEvt openBombS2CEvt = BinSerializer.DeSerialize <ProtoData.OpemBombS2CEvt>(bytes); BattleMgr.Instance.bombMgr.OpenBomb(openBombS2CEvt); }
public override void WriteObject(BinSerializer bs) { base.WriteObject(bs); bs.Write(Global, 1); bs.Write((byte)State, 2); bs.Write(0u); }
public static byte[] Serialize <T>(T obj) { using (MemoryStream stream = new MemoryStream()) { BinSerializer.Serialize(stream, obj); return(stream.ToArray()); } }
public override void WriteObject(BinSerializer bs) { base.WriteObject(bs); bs.Write(ReportXmlVersion, 1); bs.Write(0u); }
public string ReadFile(int addr, int size) { var r = base.ReadPage(addr, BinSerializer.ComputeFileSizePerSector(size, PAGE_SIZE)); var encoder = new UnicodeEncoding(); var s = encoder.GetString(r.Buffer.Take(size).ToArray()); return(s); }
void IBinSerializable.WriteObject(BinSerializer bs) { bs.Write(Id, 1); bs.Write(DevModelIdSeq, 2); bs.Write(Owner, 3); bs.Write(Name, 4); bs.Write(0u); }
//object IDynamicObject.GetBoxedPropertyValue(string propertyName) //{ // return DynamicMembers.GetBoxedPropertyValue(propertyName, this); //} //void IDynamicObject.SetBoxedPropertyValue(string propertyName, object value) //{ // DynamicMembers.SetBoxedPropertyValue(propertyName, this, value); //} //T IDynamicObject.GetPropertyValue<T>(string propertyName) //{ // return DynamicMembers.GetPropertyValue<T>(propertyName, this); //} //void IDynamicObject.SetPropertyValue<T>(string propertyName, T value) //{ // DynamicMembers.SetPropertyValue<T>(propertyName, this, value); //} //object IDynamicObject.InvokeMethod(string methodName, object[] args) //{ // return DynamicMembers.InvokeMethod(methodName, this, args); //} //void IDynamicObject.AddEventHandler(string eventName, EventAction action) //{ // throw ExceptionHelper.NotImplemented(); //} #endregion #region ====IBinSerializable==== void IBinSerializable.WriteObject(BinSerializer writer) { writer.Write(this.Count); for (int i = 0; i < this.Count; i++) { writer.Serialize(this[i]); } }
private static T SerializeDeserialize <T>(T input) { var stream = new MemoryStream(); BinSerializer.Serialize(stream, input); stream.Position = 0; return(BinSerializer.Deserialize <T>(stream)); }
public unsafe void WriteObject(BinSerializer bs) { bs.Write(ReadCommitted); long hv = WaitHandle.ToInt64(); var span = new Span <byte>(&hv, 8); bs.Stream.Write(span); }
void OnSyncPositionReceived(EventData eventData) { byte[] bytes = (byte[])DictTool.GetValue <byte, object>(eventData.Parameters, 1); ProtoData.SyncPositionEvtS2C syncPositionEvtS2C = BinSerializer.DeSerialize <ProtoData.SyncPositionEvtS2C>(bytes); GameObject.FindGameObjectWithTag("Player").GetComponent <Player>().OnSyncPositionEvent(syncPositionEvtS2C.dataList); }
public unsafe void WriteObject(BinSerializer bs) { long hv = TxnPtr.ToInt64(); var span = new Span <byte>(&hv, 8); bs.Stream.Write(span); bs.Write(IsAbort); }
void IBinSerializable.WriteObject(BinSerializer writer) { writer.Write(nodes.Length); for (int i = 0; i < nodes.Length; i++) { writer.Write(nodes[i].ID); writer.Write(nodes[i].Text); } }
public override void SendPacket(bool isWait = false, bool reliable = true) { base.SendPacket(isWait, reliable); var packet = new ProtoData.RaidRankingScoreData( ); packet.score = score; Send(OperationCode.ResultRaidRanking, BinSerializer.ConvertPacket(packet)); Debug.Log("[ResultRaidRankingRequest] Send"); }
void IBinSerializable.ReadObject(BinSerializer reader) { var count = reader.ReadInt32(); for (int i = 0; i < count; i++) { this.Add(reader.Deserialize()); } }
/// <summary> /// 收到状态事件消息 /// </summary> /// <param name="eventData"></param> void OnSyncTransitionReceived(EventData eventData) { byte[] bytes = (byte[])DictTool.GetValue <byte, object>(eventData.Parameters, 1); object[] objs = (object[])DictTool.GetValue <byte, object>(eventData.Parameters, 2); SyncTransitionS2C syncTransitionS2C = BinSerializer.DeSerialize <SyncTransitionS2C>(bytes); BattleSyncMgr.Instance.OnSyncTransitionEvent(syncTransitionS2C.username, (FSMTransition)syncTransitionS2C.targetTransition, objs); }
void OnSyncAddPlayerReceived(EventData eventData) { byte[] bytes = (byte[])DictTool.GetValue <byte, object>(eventData.Parameters, 1); AddPlayerS2CEvt playerS2CEvt = BinSerializer.DeSerialize <AddPlayerS2CEvt>(bytes); Debug.LogError("新玩家进入:" + playerS2CEvt.username); BattleSyncMgr.Instance.OnAddPlayerEvent(playerS2CEvt.username, playerS2CEvt.modelName, playerS2CEvt.nickName, playerS2CEvt.hp, playerS2CEvt.killCount); }
public override void WriteObject(BinSerializer writer) { base.WriteObject(writer); writer.Write(Name, 1); writer.Serialize(Owner, 2); writer.Write((uint)0); }
public override void Write(BinSerializer bs, object instance) { var list = (IList)instance; //先写入元素个数 VariantHelper.WriteInt32(list.Count, bs.Stream); //再写入各元素 bs.WriteCollection(instance.GetType().GetGenericArguments()[0], list.Count, (index) => list[index]); }
public override void WriteObject(BinSerializer bs) { base.WriteObject(bs); bs.Write(RefModelId, 1); bs.Write(RefMemberId, 2); bs.Write((uint)0); }
/// <summary> /// 保存模型类型的根目录 /// </summary> internal static Task SaveFolderAsync(ModelFolder folder) { if (folder.Parent != null) { throw new InvalidOperationException("仅允许保存模型类型的根目录"); } var data = BinSerializer.Serialize(folder, false, null); return(SaveAsync(StagedType.Folder, $"{folder.AppId}-{(byte)folder.TargetModelType}" /*不要使用folder.Id*/, data)); }
public unsafe void WriteObject(BinSerializer bs) { bs.Write(TxnPtr.ToInt64()); bs.Write(WaitHandle.ToInt64()); bs.Write(PartitionInfo.Flags); bs.Write(PartitionInfo.KeySize.ToInt32()); var span = new ReadOnlySpan <byte>(PartitionInfo.KeyPtr.ToPointer(), PartitionInfo.KeySize.ToInt32()); bs.Stream.Write(span); }
public unsafe void WriteObject(BinSerializer bs) { bs.Write(WaitHandle.ToInt64()); bs.Write(RaftGroupId); bs.Write(DataCF); bs.Write(KeySize); var span = new ReadOnlySpan <byte>(KeyPtr.ToPointer(), (int)KeySize); bs.Stream.Write(span); }
public override object Read(BinSerializer bs, object instance) { var list = (IList)instance; var elementType = instance.GetType().GetGenericArguments()[0]; //注意:需要读取元素个数 var count = VariantHelper.ReadInt32(bs.Stream); bs.ReadCollection(elementType, count, (index, value) => list.Add(value)); return(list); }
//获取客户端位置请求的处理的代码 public void OnSyncPositionReceived(ClientPeer peer, OperationRequest operationRequest, SendParameters sendParameters) { //接收位置并保持起来 byte[] bytes = (byte[])DictTool.GetValue <byte, object>(operationRequest.Parameters, 1); ProtoData.SyncPositionC2S syncPositionC2S = BinSerializer.DeSerialize <ProtoData.SyncPositionC2S>(bytes); peer.x = syncPositionC2S.x; peer.y = syncPositionC2S.y; peer.z = syncPositionC2S.z; }
/// <summary> /// 收到位置等消息 /// </summary> /// <param name="eventData"></param> void OnSyncTransformReceived(EventData eventData) { byte[] bytes = (byte[])DictTool.GetValue <byte, object>(eventData.Parameters, 1); ProtoData.SyncTransformEvtS2C syncTransformEvtS2C = BinSerializer.DeSerialize <ProtoData.SyncTransformEvtS2C>(bytes); BattleSyncMgr.Instance.OnSyncTransformEvent(syncTransformEvtS2C.dataList); //Debug.LogWarning(Time.time); }
//获取客户端位置请求的处理的代码 public void OnSyncTransformReceived(Client peer, OperationRequest operationRequest, SendParameters sendParameters) { //接收位置并保持起来 byte[] bytes = (byte[])DictTool.GetValue <byte, object>(operationRequest.Parameters, 1); ProtoData.SyncTransformC2S syncTransformC2S = BinSerializer.DeSerialize <ProtoData.SyncTransformC2S>(bytes); peer.playerData.heroData.x = syncTransformC2S.x; peer.playerData.heroData.y = syncTransformC2S.y; peer.playerData.heroData.z = syncTransformC2S.z; peer.playerData.heroData.angleY = syncTransformC2S.angleY; }
public unsafe void ReadObject(BinSerializer bs) { WaitHandle = new IntPtr(bs.ReadInt64()); RaftGroupId = bs.ReadUInt64(); DataCF = bs.ReadInt32(); KeySize = bs.ReadUInt32(); KeyPtr = Marshal.AllocHGlobal((int)KeySize); var span = new Span <byte>(KeyPtr.ToPointer(), (int)KeySize); bs.Stream.Read(span); }