Пример #1
0
        public void LoadPluginPersist(VM vm, uint objectPID, uint pluginID, VMAsyncPluginLoadCallback callback)
        {
            //TODO: maybe a ring backup system for this too? may be more difficult
            Host.InBackground(() =>
            {
                if (objectPID == 0)
                {
                    callback(null);
                }
                try
                {
                    var objStr = objectPID.ToString("x8");
                    var path   = Path.Combine(Config.SimNFS, "Objects/" + objStr + "/Plugin/" + pluginID.ToString("x8") + ".dat");

                    //if path does not exist, will throw FileNotFoundException
                    using (var file = File.Open(path, FileMode.Open))
                    {
                        var dat = new byte[file.Length];
                        file.Read(dat, 0, dat.Length);
                        callback(dat);
                    }
                }
                catch (Exception e)
                {
                    //todo: specific types of exception that can be thrown here? instead of just catching em all
                    if (!(e is FileNotFoundException))
                    {
                        LOG.Error(e, "Failed to load plugin persist for object " + objectPID.ToString("x8") + " plugin " + pluginID.ToString("x8") + "!");
                    }
                    callback(null);
                }
            });
        }
Пример #2
0
 public void LoadPluginPersist(VM vm, uint objectPID, uint pluginID, VMAsyncPluginLoadCallback callback)
 {
     new System.Threading.Thread(() =>
     {
         callback(null);
     }).Start();
 }
Пример #3
0
        public void LoadPluginPersist(VM vm, uint objectPID, uint pluginID, VMAsyncPluginLoadCallback callback)
        {
            var dat = Database.LoadPluginPersist(objectPID, pluginID);

            new System.Threading.Thread(() =>
            {
                System.Threading.Thread.Sleep(100);
                callback(dat);
            }).Start();
        }
Пример #4
0
        public void LoadPluginPersist(VM vm, uint objectPID, uint pluginID, VMAsyncPluginLoadCallback callback)
        {
            var dat = Database.LoadPluginPersist(objectPID, pluginID);

            new System.Threading.Thread(() =>
            {
                System.Threading.Thread.Sleep(100);
                callback(dat);
            }).Start();
        }