name: DoctrineDbalPostgreSqlStore
class_comment: "# * DoctrineDbalPostgreSqlStore is a PersistingStoreInterface implementation\
  \ using\n# * PostgreSql advisory locks with a Doctrine DBAL Connection.\n# *\n#\
  \ * @author J\xE9r\xE9my Deruss\xE9 <jeremy@derusse.com>"
dependencies:
- name: Configuration
  type: class
  source: Doctrine\DBAL\Configuration
- name: Connection
  type: class
  source: Doctrine\DBAL\Connection
- name: DriverManager
  type: class
  source: Doctrine\DBAL\DriverManager
- name: PostgreSQLPlatform
  type: class
  source: Doctrine\DBAL\Platforms\PostgreSQLPlatform
- name: DefaultSchemaManagerFactory
  type: class
  source: Doctrine\DBAL\Schema\DefaultSchemaManagerFactory
- name: DsnParser
  type: class
  source: Doctrine\DBAL\Tools\DsnParser
- name: BlockingSharedLockStoreInterface
  type: class
  source: Symfony\Component\Lock\BlockingSharedLockStoreInterface
- name: BlockingStoreInterface
  type: class
  source: Symfony\Component\Lock\BlockingStoreInterface
- name: InvalidArgumentException
  type: class
  source: Symfony\Component\Lock\Exception\InvalidArgumentException
- name: LockConflictedException
  type: class
  source: Symfony\Component\Lock\Exception\LockConflictedException
- name: Key
  type: class
  source: Symfony\Component\Lock\Key
- name: SharedLockStoreInterface
  type: class
  source: Symfony\Component\Lock\SharedLockStoreInterface
properties: []
methods:
- name: __construct
  visibility: public
  parameters:
  - name: connOrUrl
  comment: "# * DoctrineDbalPostgreSqlStore is a PersistingStoreInterface implementation\
    \ using\n# * PostgreSql advisory locks with a Doctrine DBAL Connection.\n# *\n\
    # * @author J\xE9r\xE9my Deruss\xE9 <jeremy@derusse.com>\n# */\n# class DoctrineDbalPostgreSqlStore\
    \ implements BlockingSharedLockStoreInterface, BlockingStoreInterface\n# {\n#\
    \ private Connection $conn;\n# private static array $storeRegistry = [];\n# \n\
    # /**\n# * You can either pass an existing database connection a Doctrine DBAL\
    \ Connection\n# * or a URL that will be used to connect to the database.\n# *\n\
    # * @throws InvalidArgumentException When first argument is not Connection nor\
    \ string"
- name: save
  visibility: public
  parameters:
  - name: key
  comment: null
- name: saveRead
  visibility: public
  parameters:
  - name: key
  comment: null
- name: putOffExpiration
  visibility: public
  parameters:
  - name: key
  - name: ttl
  comment: null
- name: delete
  visibility: public
  parameters:
  - name: key
  comment: null
- name: exists
  visibility: public
  parameters:
  - name: key
  comment: null
- name: waitAndSave
  visibility: public
  parameters:
  - name: key
  comment: null
- name: waitAndSaveRead
  visibility: public
  parameters:
  - name: key
  comment: null
- name: getHashedKey
  visibility: private
  parameters:
  - name: key
  comment: '# * Returns a hashed version of the key.'
- name: unlock
  visibility: private
  parameters:
  - name: key
  comment: null
- name: unlockShared
  visibility: private
  parameters:
  - name: key
  comment: null
- name: filterDsn
  visibility: private
  parameters:
  - name: dsn
  comment: '# * Check driver and remove scheme extension from DSN.

    # * From pgsql+advisory://server/ to pgsql://server/.

    # *

    # * @throws InvalidArgumentException when driver is not supported'
- name: getInternalStore
  visibility: private
  parameters: []
  comment: null
traits:
- Doctrine\DBAL\Configuration
- Doctrine\DBAL\Connection
- Doctrine\DBAL\DriverManager
- Doctrine\DBAL\Platforms\PostgreSQLPlatform
- Doctrine\DBAL\Schema\DefaultSchemaManagerFactory
- Doctrine\DBAL\Tools\DsnParser
- Symfony\Component\Lock\BlockingSharedLockStoreInterface
- Symfony\Component\Lock\BlockingStoreInterface
- Symfony\Component\Lock\Exception\InvalidArgumentException
- Symfony\Component\Lock\Exception\LockConflictedException
- Symfony\Component\Lock\Key
- Symfony\Component\Lock\SharedLockStoreInterface
interfaces:
- BlockingSharedLockStoreInterface