Example #1
0
        public bool HandleMemoryCommand(MemoryCommand memory)
        {
            var maps = App.AssemblyStorage.AssemblyNetworkPoke.Maps;

            foreach (var map in maps)
            {
                var cacheFile   = map.Item1;
                var rteProvider = map.Item2;

                if (memory.BuildName == cacheFile.BuildString && memory.CacheName == cacheFile.InternalName)
                {
                    using (var metaStream = rteProvider.GetMetaStream(cacheFile))
                    {
                        if (metaStream != null)
                        {
                            foreach (var action in memory.Actions)
                            {
                                if (cacheFile.MetaArea.ContainsBlockPointer(action.Position, action.Buffer.Length))
                                {
                                    metaStream.SeekTo(action.Position);
                                    metaStream.WriteBlock(action.Buffer);
                                }
                            }
                        }
                        return(true);
                    }
                }
            }
            return(false);
        }
        public static PokeCommand DeserializeCommand(Stream stream)
        {
            var commandType = (PokeCommandType)stream.ReadByte();

            PokeCommand command;

            switch (commandType)
            {
            case PokeCommandType.Memory:
                command = new MemoryCommand();
                break;

            case PokeCommandType.End:
                return(null);

            default:
                throw new NotImplementedException("Received an unsupported group poke command.  It's possible this command came from a newer version of Assembly.");
            }
            command.Deserialize(stream);
            return(command);
        }
 public void SendMemoryCommand(MemoryCommand memory)
 {
     _client.SendCommand(memory);
 }
 public void SendMemoryCommand(MemoryCommand memory)
 {
     _server.SendCommandToAll(memory);
     memory.Handle(_handler);
 }