Exemplo n.º 1
0
        public KNetRpc(SerializationInfo info, StreamingContext context)
        {
            Counts    = (int[])info.GetValue("counts", typeof(int[]));
            RpcInfo   = (KNetRpcInfo) new KNetRpcInfo().KNetDeserializeReference((byte[])info.GetValue("rpcInfo", typeof(byte[])));
            Arguments = new object[RpcInfo.ArgumentsTypes.Length];

            byte[][] serializedArgs = (byte[][])info.GetValue("args", typeof(byte[][]));
            for (int i = 0; i < serializedArgs.Length; i++)
            {
                Arguments[i] = KNetUtils.Deserialize(serializedArgs[i], Counts[i], RpcInfo.ArgSerializationTypes[i], RpcInfo.ArgumentsTypes[i]);
            }
        }
Exemplo n.º 2
0
        internal static void RecieveBufferedObject(KNetSerializedField serializedField)
        {
            KNetView view = KlivenNet.FindView(serializedField.viewId);

            if (view == null)
            {
                KNetLogger.LogError($"KNetClient: could not Recieve buffered object: KNetView of id {serializedField.viewId}: view does not exist.");
                return;
            }
            var field = serializedField.fieldId < view.BufferedFields.Length ? view.BufferedFields[serializedField.fieldId] : null;

            if (field == null)
            {
                KNetLogger.LogError($"KNetClient: could not Recieve buffered object: KNetView of id {serializedField.viewId}: field id {serializedField.fieldId} is not defined.");
                return;
            }
            field.SetValue(view, KNetUtils.Deserialize(serializedField.data, serializedField.count
                                                       , KNetUtils.IsSerializable(field.FieldType), field.FieldType));
        }