コード例 #1
0
        // For FunMessage
        public static FunMessage CreateFunMessage(object msg, MessageType msg_type)
        {
            if (msg is Enum)
            {
                msg = (Int32)msg;
            }

            try
            {
                FunMessage _msg = new FunMessage();
                Extensible.AppendValue(serializer_, _msg, (int)msg_type, DataFormat.Default, msg);
                return(_msg);
            }
            catch (Exception e)
            {
                Type type = MessageTable.GetType(msg_type);
                FunDebug.LogError("FunapiMessage.CreateFunMessage - Failed to create '{0}' ({1})\n{2}",
                                  type, msg_type, e.ToString());

                if (ParsingErrorCallback != null)
                {
                    ParsingErrorCallback(type);
                }
            }

            return(null);
        }
コード例 #2
0
        public static T GetMulticastMessage <T> (FunMulticastMessage msg, MulticastMessageType msg_type)
        {
            try
            {
                object _msg = null;
                Extensible.TryGetValue(serializer_, MessageTable.GetType(msg_type), msg,
                                       (int)msg_type, DataFormat.Default, true, out _msg);

                FunDebug.Assert(_msg != null, "TryGetValue() failed. Please check the message type.");

                return((T)_msg);
            }
            catch (Exception e)
            {
                Type type = MessageTable.GetType(msg_type);
                FunDebug.LogError("FunapiMessage.GetMulticastMessage - Failed to decode '{0}' ({1})\n{2}",
                                  type, msg_type, e.ToString());

                if (ParsingErrorCallback != null)
                {
                    ParsingErrorCallback(type);
                }
            }

            return(default(T));
        }
コード例 #3
0
        public static object GetMessage(FunMessage msg, MessageType msg_type)
        {
            object _msg    = null;
            bool   success = Extensible.TryGetValue(serializer_, MessageTable.GetType(msg_type), msg,
                                                    (int)msg_type, DataFormat.Default, true, out _msg);

            if (!success)
            {
                FunDebug.Log("Failed to decode {0} {1}", MessageTable.GetType(msg_type), (int)msg_type);
                return(null);
            }

            return(_msg);
        }
コード例 #4
0
        public static void DebugString(FunDedicatedServerRpcMessage msg, StringBuilder log)
        {
            foreach (MessageType msg_type in Enum.GetValues(typeof(MessageType)))
            {
                object _msg    = null;
                Type   type    = MessageTable.GetType(msg_type);
                bool   succeed = Extensible.TryGetValue(serializer_, type, msg,
                                                        (int)msg_type, DataFormat.Default, true, out _msg);
                if (succeed)
                {
                    var json = JObject.FromObject(_msg);
                    log.Append(prettyJsonString(json));

                    debugString((IExtensible)_msg, type, log);
                }
            }
        }