<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="stash.cache.class">Tedivm\StashBundle\Service\CacheService</parameter>
        <parameter key="stash.tracker.class">Tedivm\StashBundle\Service\CacheTracker</parameter>
        <parameter key="stash.driver.class">Stash\Interfaces\DriverInterface</parameter>
        <parameter key="stash.factory.class">Tedivm\StashBundle\Factory\DriverFactory</parameter>
        <parameter key="stash.adapter.doctrine.class">Tedivm\StashBundle\Adapters\DoctrineAdapter</parameter>
        <parameter key="stash.adapter.session.class">Tedivm\StashBundle\Adapters\SessionHandlerAdapter</parameter>
        <parameter key="stash.data_collector.class">Tedivm\StashBundle\Collector\CacheDataCollector</parameter>
    </parameters>

    <services>
        <service id="stash.cache" class="%stash.cache.class%" abstract="true"/>
        <service id="stash.tracker" class="%stash.tracker.class%" abstract="true"/>
        <service id="stash.driver"
            class="%stash.driver.class%"
            abstract="true"
            synthetic="true"
            factory-method="createDriver"
            factory-class="%stash.factory.class%"
        />
        <service id="stash.adapter.doctrine" class="%stash.adapter.doctrine.class%" abstract="true"/>
        <service id="stash.adapter.session" class="%stash.adapter.session.class%" abstract="true"/>
        <service id="data_collector.stash" class="%stash.data_collector.class%">
            <argument>%stash.default_cache%</argument>
            <argument>%stash.caches%</argument>
            <argument>%stash.caches.options%</argument>
            <tag name="data_collector" id="stash" template="TedivmStashBundle:Profiler:layout"/>
        </service>
    </services>
</container>
