예제 #1
0
        protected void InitializeAll()
        {
            try
            {
                InitializeLibRetro();

                if (!LoadGame())
                {
                    return;
                }

                _synchronizationStrategy = new SynchronizationStrategy(_retroEmulator.TimingInfo.FPS, _settings.SynchronizationType);
                _soundOutput.SetSynchronizationStrategy(_synchronizationStrategy);

                InitializeSaveStateHandler();
                _retroThread.IsInit = true;
            }
            catch (Exception ex)
            {
                Logger.Error("LibRetroFrontend: Error initialising Libretro core", ex);
                if (_retroEmulator != null)
                {
                    _retroEmulator.Dispose();
                    _retroEmulator = null;
                }
            }
        }
예제 #2
0
 public void Dispose()
 {
     if (_retroThread != null)
     {
         _retroThread.Dispose();
         _retroThread = null;
     }
     if (_controllerWrapper != null)
     {
         _controllerWrapper.Dispose();
         _controllerWrapper = null;
     }
     if (_synchronizationStrategy != null)
     {
         _synchronizationStrategy.Stop();
         _synchronizationStrategy = null;
     }
 }
        public object Clone()
        {
            CacheServerConfigSetting config = new CacheServerConfigSetting();

            config.cacheType    = this.cacheType;
            config.InProc       = InProc;
            config.Log          = Log != null ? (Alachisoft.NCache.Config.Dom.Log)Log.Clone() : null;
            config.PerfCounters = PerfCounters != null ? (Alachisoft.NCache.Config.Dom.PerfCounters)PerfCounters.Clone() : null;


            config.Cleanup                    = Cleanup != null ? (Alachisoft.NCache.Config.Dom.Cleanup)Cleanup.Clone() : null;
            config.Storage                    = Storage != null ? (Alachisoft.NCache.Config.Dom.Storage)Storage.Clone() : null;
            config.EvictionPolicy             = EvictionPolicy != null ? (Alachisoft.NCache.Config.Dom.EvictionPolicy)EvictionPolicy.Clone() : null;
            config.ExpirationPolicy           = ExpirationPolicy != null ? (Alachisoft.NCache.Config.Dom.ExpirationPolicy)ExpirationPolicy.Clone() : null;
            config.backingSource              = this.backingSource != null ? (Alachisoft.NCache.Config.Dom.BackingSource) this.backingSource.Clone() : null;
            config.QueryIndices               = QueryIndices != null ? (Alachisoft.NCache.Config.Dom.QueryIndex)QueryIndices.Clone() : null;
            config.Notifications              = Notifications != null ? (Alachisoft.NCache.Config.Dom.Notifications)Notifications.Clone() : null;
            config.SQLDependencyConfig        = SQLDependencyConfig != null ? (Alachisoft.NCache.Config.Dom.SQLDependencyConfig)SQLDependencyConfig.Clone() : null;
            config.SynchronizationStrategy    = SynchronizationStrategy != null ? (Alachisoft.NCache.Config.Dom.SynchronizationStrategy)SynchronizationStrategy.Clone() : null;
            config.cacheTopology              = this.cacheTopology;
            config.DataFormat                 = this.DataFormat;
            config.ClientDeathDetection       = ClientDeathDetection != null ? (ClientDeathDetection)ClientDeathDetection.Clone() : null;
            config.TaskConfiguration          = TaskConfiguration != null ?(TaskConfiguration)TaskConfiguration.Clone() : null;
            config.ClientActivityNotification = ClientActivityNotification != null
                ? (ClientActivityNotification)ClientActivityNotification.Clone()
                : null;
            return(config);
        }
예제 #4
0
 public void SetSynchronizationStrategy(SynchronizationStrategy strategy)
 {
     _strategy = strategy;
 }
예제 #5
0
        public object Clone()
        {
            CacheServerConfigSetting config = new CacheServerConfigSetting();

            config.cacheType    = this.cacheType;
            config.InProc       = InProc;
            config.LastModified = LastModified != null ? (string)LastModified.Clone() : null;
            config.Log          = Log != null ? (Alachisoft.NCache.Config.Dom.Log)Log.Clone() : null;
            config.PerfCounters = PerfCounters != null ? (Alachisoft.NCache.Config.Dom.PerfCounters)PerfCounters.Clone() : null;

#if SERVER
            config.autoBalancing = this.autoBalancing != null ? (Alachisoft.NCache.Config.Dom.AutoLoadBalancing) this.autoBalancing.Clone() : null;
#endif
            config.Cleanup        = Cleanup != null ? (Alachisoft.NCache.Config.Dom.Cleanup)Cleanup.Clone() : null;
            config.Storage        = Storage != null ? (Alachisoft.NCache.Config.Dom.Storage)Storage.Clone() : null;
            config.EvictionPolicy = EvictionPolicy != null ? (Alachisoft.NCache.Config.Dom.EvictionPolicy)EvictionPolicy.Clone() : null;

            config.backingSource           = backingSource != null ? (Alachisoft.NCache.Config.Dom.BackingSource) this.backingSource.Clone() : null;
            config.Security                = Security != null ? (Alachisoft.NCache.Config.Dom.Security)Security.Clone() : null;
            config.Notifications           = Notifications != null ? (Alachisoft.NCache.Config.Dom.Notifications)Notifications.Clone() : null;
            config.SynchronizationStrategy = SynchronizationStrategy != null ? (Alachisoft.NCache.Config.Dom.SynchronizationStrategy)SynchronizationStrategy.Clone() : null;

            config.cacheTopology              = this.cacheTopology;
            config.DataFormat                 = this.DataFormat;
            config.ClientDeathDetection       = ClientDeathDetection != null ? (ClientDeathDetection)ClientDeathDetection.Clone() : null;
            config.ClientActivityNotification = ClientActivityNotification != null
                ? (ClientActivityNotification)ClientActivityNotification.Clone()
                : null;
            return(config);
        }
예제 #6
0
 public void SetSynchronizationStrategy(SynchronizationStrategy strategy)
 {
     lock (_syncObj)
         _synchronizationStrategy = strategy;
 }