original_string: public function pushStorage( ezcCacheStackStorageConfiguration $storageConf )
      {
          if ( isset( $this->storageIdMap[$storageConf->id] ) )
          {
              throw new ezcCacheStackIdAlreadyUsedException(
                  $storageConf->id
              );
          }
          if ( in_array( $storageConf->storage, $this->storageIdMap, true ) )
          {
              throw new ezcCacheStackStorageUsedTwiceException(
                  $storageConf->storage
              );
          }
          array_unshift( $this->storageStack, $storageConf );
          $this->storageIdMap[$storageConf->id] = $storageConf->storage;
      }
code: public function pushStorage( ezcCacheStackStorageConfiguration $storageConf )
      {
          if ( isset( $this->storageIdMap[$storageConf->id] ) )
          {
              throw new ezcCacheStackIdAlreadyUsedException(
                  $storageConf->id
              );
          }
          if ( in_array( $storageConf->storage, $this->storageIdMap, true ) )
          {
              throw new ezcCacheStackStorageUsedTwiceException(
                  $storageConf->storage
              );
          }
          array_unshift( $this->storageStack, $storageConf );
          $this->storageIdMap[$storageConf->id] = $storageConf->storage;
      }
code_tokens: public function pushStorage ( ezcCacheStackStorageConfiguration $ storageConf ) { if ( isset ( $ this -> storageIdMap [ $ storageConf -> id ] ) ) { throw new ezcCacheStackIdAlreadyUsedException ( $ storageConf -> id ) ; } if ( in_array ( $ storageConf -> storage , $ this -> storageIdMap , true ) ) { throw new ezcCacheStackStorageUsedTwiceException ( $ storageConf -> storage ) ; } array_unshift ( $ this -> storageStack , $ storageConf ) ; $ this -> storageIdMap [ $ storageConf -> id ] = $ storageConf -> storage ; }
docstring: Add a storage to the top of the stack.
  
  This method is used to add a new storage to the top of the cache. The
  $storageConf of type {@link ezcCacheStackStorageConfiguration} consists
  of the actual {@link ezcCacheStackableStorage} and other information.
  
  Most importantly, the configuration object contains an ID, which must be
  unique within the whole storage. The itemLimit setting determines how
  many items might be stored in the storage at all. freeRate determines
  which fraction of itemLimit will be freed by the {@link
  ezcCacheStackStackReplacementStrategy} of the stack, when the storage
  runs full.
  
  @param ezcCacheStackStorageConfiguration $storageConf
docstring_tokens: Add a storage to the top of the stack .