]> git.sesse.net Git - casparcg/blob - protocol/util/lock_container.h
* Merged RESUME command.
[casparcg] / protocol / util / lock_container.h
1 #pragma once
2
3 #include <common/memory.h>
4
5 #include <boost/noncopyable.hpp>
6
7 #include "protocol_strategy.h"
8
9 namespace caspar { namespace IO {
10
11         class lock_container : public boost::noncopyable
12         {
13         public:
14                 lock_container(const std::wstring& lifecycle_key);
15                 ~lock_container();
16
17                 bool check_access(client_connection<wchar_t>::ptr conn);
18                 bool try_lock(const std::wstring& lock_phrase, client_connection<wchar_t>::ptr conn);
19                 void release_lock(client_connection<wchar_t>::ptr conn);
20                 void clear_locks();
21
22         private:
23                 struct impl;
24                 spl::unique_ptr<impl> impl_;
25         };
26 }}