示例#1
0
    static int SendMessage(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(NetworkPeerLua), typeof(string)))
            {
                NetworkPeerLua obj  = (NetworkPeerLua)ToLua.ToObject(L, 1);
                string         arg0 = ToLua.ToString(L, 2);
                obj.SendMessage(arg0);
                return(0);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(NetworkPeerLua), typeof(string), typeof(UnityEngine.SendMessageOptions)))
            {
                NetworkPeerLua obj  = (NetworkPeerLua)ToLua.ToObject(L, 1);
                string         arg0 = ToLua.ToString(L, 2);
                UnityEngine.SendMessageOptions arg1 = (UnityEngine.SendMessageOptions)ToLua.ToObject(L, 3);
                obj.SendMessage(arg0, arg1);
                return(0);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(NetworkPeerLua), typeof(string), typeof(PBStreamWriter)))
            {
                NetworkPeerLua obj  = (NetworkPeerLua)ToLua.ToObject(L, 1);
                string         arg0 = ToLua.ToString(L, 2);
                PBStreamWriter arg1 = (PBStreamWriter)ToLua.ToObject(L, 3);
                obj.SendMessage(arg0, arg1);
                return(0);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(NetworkPeerLua), typeof(string), typeof(object)))
            {
                NetworkPeerLua obj  = (NetworkPeerLua)ToLua.ToObject(L, 1);
                string         arg0 = ToLua.ToString(L, 2);
                object         arg1 = ToLua.ToVarObject(L, 3);
                obj.SendMessage(arg0, arg1);
                return(0);
            }
            else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(NetworkPeerLua), typeof(string), typeof(object), typeof(UnityEngine.SendMessageOptions)))
            {
                NetworkPeerLua obj  = (NetworkPeerLua)ToLua.ToObject(L, 1);
                string         arg0 = ToLua.ToString(L, 2);
                object         arg1 = ToLua.ToVarObject(L, 3);
                UnityEngine.SendMessageOptions arg2 = (UnityEngine.SendMessageOptions)ToLua.ToObject(L, 4);
                obj.SendMessage(arg0, arg1, arg2);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: NetworkPeerLua.SendMessage"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
示例#2
0
    public void SendMessage(string msgName, PBStreamWriter writer)
    {
        if (_socket == null)
        {
            return;
        }

        var msgid = StringUtility.Hash(msgName);

        _socket.SendPacket(msgid, writer.ToArray());
    }
示例#3
0
 static int TestStream(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         PBStreamWriter arg0 = (PBStreamWriter)ToLua.CheckObject(L, 1, typeof(PBStreamWriter));
         LuaPB.TestStream(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#4
0
 static int Flush(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         PBStreamWriter obj = (PBStreamWriter)ToLua.CheckObject(L, 1, typeof(PBStreamWriter));
         obj.Flush();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#5
0
 static int ToArray(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         PBStreamWriter obj = (PBStreamWriter)ToLua.CheckObject(L, 1, typeof(PBStreamWriter));
         byte[]         o   = obj.ToArray();
         ToLua.Push(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#6
0
 static int ToString(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         PBStreamWriter obj = (PBStreamWriter)ToLua.CheckObject(L, 1, typeof(PBStreamWriter));
         string         o   = obj.ToString();
         LuaDLL.lua_pushstring(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#7
0
 static int WriteInt64(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 3);
         PBStreamWriter obj  = (PBStreamWriter)ToLua.CheckObject(L, 1, typeof(PBStreamWriter));
         int            arg0 = (int)LuaDLL.luaL_checknumber(L, 2);
         string         arg1 = ToLua.CheckString(L, 3);
         obj.WriteInt64(arg0, arg1);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#8
0
    static int get_Stream(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            PBStreamWriter         obj = (PBStreamWriter)o;
            System.IO.MemoryStream ret = obj.Stream;
            ToLua.PushObject(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index Stream on a nil value" : e.Message));
        }
    }
示例#9
0
    static int _CreatePBStreamWriter(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 0)
            {
                PBStreamWriter obj = new PBStreamWriter();
                ToLua.PushObject(L, obj);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: PBStreamWriter.New"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
示例#10
0
    public static void TestStream(PBStreamWriter s)
    {
        var p = new tutorial.Person();

        p.name = "hello";
        p.test.Add(1);
        p.test.Add(2);
        p.phone.Add(new tutorial.PhoneNumber
        {
            number = "789",
            type   = tutorial.PhoneType.WORK,
        });

        p.phone.Add(new tutorial.PhoneNumber
        {
            number = "456",

            type = tutorial.PhoneType.HOME,
        });

        var stream = new MemoryStream();

        ProtoBuf.Serializer.Serialize(stream, p);

        s.Stream.Position = 0;
        var data          = ProtoBuf.Serializer.Deserialize <tutorial.Person>(s.Stream);
        var compareStream = new MemoryStream();

        ProtoBuf.Serializer.Serialize(compareStream, data);


        if (CompareMemoryStreams(stream, compareStream))
        {
            int a = 1;
        }
    }