Exemplo n.º 1
0
 /**
  * Used to inform the loader of its state as a sub loader, or as the top of the chain.
  *
  * This is important as it ensures that we do not have more than one loader keeping static acceleration data.
  * Subloaders need to be "pure" loaders in the sense that they are used to store and retrieve information from stores or the
  * next loader/data source in the chain.
  * Nothing fancy, nothing flash.
  *
  * @param bool $setting
  */
 protected function set_is_sub_loader($setting = true)
 {
     if ($setting) {
         $this->subloader = true;
         // Subloaders should not keep static acceleration data.
         $this->staticacceleration = false;
         $this->staticaccelerationsize = false;
     } else {
         $this->subloader = true;
         $this->staticacceleration = $this->definition->use_static_acceleration();
         if ($this->staticacceleration) {
             $this->staticaccelerationsize = $this->definition->get_static_acceleration_size();
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Initialises the store instance for a definition.
  * @param cache_definition $definition
  */
 public function initialise(cache_definition $definition)
 {
     // If the definition isn't using static acceleration then we need to be store data here.
     // The reasoning behind this is that:
     //   - If the definition is using static acceleration then the cache loader is going to
     //     store things in its static array.
     //   - If the definition is not using static acceleration then the cache loader won't try to store anything
     //     and we will need to store it here in order to make sure it is accessible.
     if ($definition->get_mode() !== self::MODE_APPLICATION) {
         // Neither the request cache nor the session cache provide static acceleration.
         $this->persist = true;
     } else {
         $this->persist = !$definition->use_static_acceleration();
     }
 }