Exemple #1
0
        private Request _TryGetRequest(RequestPackage package)
        {
            if (package.Code == ClientToServerOpCode.Ping)
            {
                _Push(ServerToClientOpCode.Ping, new byte[0]);
                return(null);
            }
            else if (package.Code == ClientToServerOpCode.CallMethod)
            {
                PackageCallMethod data = package.Data.ToPackageData <PackageCallMethod>(_Serialize);
                return(_ToRequest(data.EntityId, data.MethodId, data.ReturnId, data.MethodParams));
            }
            else if (package.Code == ClientToServerOpCode.Release)
            {
                PackageRelease data = package.Data.ToPackageData <PackageRelease>(_Serialize);
                _SoulProvider.Unbind(data.EntityId);
                return(null);
            }
            else if (package.Code == ClientToServerOpCode.UpdateProperty)
            {
                PackageSetPropertyDone data = package.Data.ToPackageData <PackageSetPropertyDone>(_Serialize);
                _SoulProvider.SetPropertyDone(data.EntityId, data.Property);
            }
            else if (package.Code == ClientToServerOpCode.AddEvent)
            {
                PackageAddEvent data = package.Data.ToPackageData <PackageAddEvent>(_Serialize);
                _SoulProvider.AddEvent(data.Entity, data.Event, data.Handler);
            }
            else if (package.Code == ClientToServerOpCode.RemoveEvent)
            {
                PackageRemoveEvent data = package.Data.ToPackageData <PackageRemoveEvent>(_Serialize);
                _SoulProvider.RemoveEvent(data.Entity, data.Event, data.Handler);
            }
            else if (ClientToServerOpCode.AddNotifierSupply == package.Code)
            {
                PackageNotifierEvent data = package.Data.ToPackageData <PackageNotifierEvent>(_Serialize);
                _SoulProvider.AddNotifierSupply(data.Entity, data.Property, data.Passage);
            }
            else if (ClientToServerOpCode.RemoveNotifierSupply == package.Code)
            {
                PackageNotifierEvent data = package.Data.ToPackageData <PackageNotifierEvent>(_Serialize);
                _SoulProvider.RemoveNotifierSupply(data.Entity, data.Property, data.Passage);
            }
            else if (ClientToServerOpCode.AddNotifierUnsupply == package.Code)
            {
                PackageNotifierEvent data = package.Data.ToPackageData <PackageNotifierEvent>(_Serialize);
                _SoulProvider.AddNotifierUnsupply(data.Entity, data.Property, data.Passage);
            }
            else if (ClientToServerOpCode.RemoveNotifierUnsupply == package.Code)
            {
                PackageNotifierEvent data = package.Data.ToPackageData <PackageNotifierEvent>(_Serialize);
                _SoulProvider.RemoveNotifierUnsupply(data.Entity, data.Property, data.Passage);
            }

            return(null);
        }
Exemple #2
0
 private void _ExternalRequest(RequestPackage package)
 {
     if (package.Code == ClientToServerOpCode.CallMethod)
     {
         PackageCallMethod data = package.Data.ToPackageData <PackageCallMethod>(_Serialize);
         var request            = _ToRequest(data.EntityId, data.MethodId, data.ReturnId, data.MethodParams);
         _InvokeMethodEvent(request.EntityId, request.MethodId, request.ReturnId, request.MethodParams);
     }
     else if (package.Code == ClientToServerOpCode.AddEvent)
     {
         PackageAddEvent data = package.Data.ToPackageData <PackageAddEvent>(_Serialize);
         _SoulProvider.AddEvent(data.Entity, data.Event, data.Handler);
     }
     else if (package.Code == ClientToServerOpCode.RemoveEvent)
     {
         PackageRemoveEvent data = package.Data.ToPackageData <PackageRemoveEvent>(_Serialize);
         _SoulProvider.RemoveEvent(data.Entity, data.Event, data.Handler);
     }
     else
     {
         Regulus.Utility.Log.Instance.WriteInfo($"invalid request code {package.Code}.");
     }
 }