1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef PermissionCallbacks_h
6#define PermissionCallbacks_h
7
8#include "platform/PlatformExport.h"
9#include "wtf/Functional.h"
10#include "wtf/Noncopyable.h"
11#include "wtf/PassOwnPtr.h"
12
13namespace blink {
14
15class PLATFORM_EXPORT PermissionCallbacks {
16    WTF_MAKE_NONCOPYABLE(PermissionCallbacks);
17public:
18    static PassOwnPtr<PermissionCallbacks> create(const Closure& allowed, const Closure& denied);
19    virtual ~PermissionCallbacks() { }
20
21    void onAllowed() { m_allowed(); }
22    void onDenied() { m_denied(); }
23
24private:
25    PermissionCallbacks(const Closure& allowed, const Closure& denied);
26
27    Closure m_allowed;
28    Closure m_denied;
29};
30
31} // namespace blink
32
33#endif // PermissionCallbacks_h
34