#pragma once

#include <saas/deploy_manager/storage/abstract.h>

namespace NRTYDeploy {

    class TZooQueue: public IDistrTasksQueue {
    private:
        THolder<IVersionedStorage> Storage;
    public:
        TZooQueue(const IVersionedStorage::TOptions& options);
        bool Ack(const TDequeueInfo& info) const;
        bool Dequeue(const TString& queueName, TDequeueInfo& info) const;
        bool Enqueue(const TString& queueName, const TString& subQueueName, const TString& id) const;
        bool GetTasks(const TString& queueName, const TString& subQueueRegEx, TVector<TString>& tasks) const;
    };

}
