Asgard.Core.Network.Packets.RPCPacket.WriteParam C# (CSharp) Method

WriteParam() private static method

private static WriteParam ( object o, Bitstream msg ) : void
o object
msg Bitstream
return void
        private static void WriteParam(object o, Bitstream msg)
        {
            var t = o.GetType();
            var dsitem = new DataSerializationProperty(null, t);

            msg.Write(t.FullName);
            switch (dsitem.Type)
            {
                case DataTypes.BOOL:
                    msg.Write((bool)o);
                    break;
                case DataTypes.UBYTE:
                    msg.Write((byte)o);
                    break;
                case DataTypes.UINT:
                    msg.WriteVariableUInt32((uint)o);
                    break;
                case DataTypes.BYTE:
                    msg.Write((sbyte)o);
                    break;
                case DataTypes.INT:
                    msg.WriteVariableInt32((int)o);
                    break;
                case DataTypes.ULONG:
                    msg.Write((ulong)o);
                    break;
                case DataTypes.LONG:
                    msg.Write((long)o);
                    break;
                case DataTypes.FLOAT:
                    msg.Write((float)o);
                    break;
                case DataTypes.DOUBLE:
                    msg.Write((double)o);
                    break;
                case DataTypes.STRING:
                    msg.Write((string)o);
                    break;
                case DataTypes.VECTOR2:
                    msg.Write((Vector2)o);
                    break;
                default:
                    throw new ArgumentException("Invalid RPC paramter type.");
            }
        }