1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)/*
2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Copyright (C) 2013 Google Inc. All rights reserved.
5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) *
6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * This library is free software; you can redistribute it and/or
7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * modify it under the terms of the GNU Library General Public
8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * License as published by the Free Software Foundation; either
95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu * version 2 of the License, or (at your option) any later version.
10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) *
11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * This library is distributed in the hope that it will be useful,
12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Library General Public License for more details.
15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) *
16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * You should have received a copy of the GNU Library General Public License
17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * along with this library; see the file COPYING.LIB.  If not, write to
18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) * Boston, MA 02110-1301, USA.
20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) *
21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) */
22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#ifndef MediaQueryResult_h
24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#define MediaQueryResult_h
25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "core/css/MediaQueryExp.h"
27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "wtf/Noncopyable.h"
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "wtf/RefCounted.h"
29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace blink {
31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class MediaQueryResult : public RefCountedWillBeGarbageCollectedFinalized<MediaQueryResult> {
33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)public:
35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    MediaQueryResult(const MediaQueryExp& expr, bool result)
36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if ENABLE(OILPAN)
37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        : m_expression(&expr)
38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#else
39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        : m_expression(expr)
40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif
41a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        , m_result(result)
42a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    {
43a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    }
44a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
45a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    void trace(Visitor* visitor) { visitor->trace(m_expression); }
46a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
47a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    const MediaQueryExp* expression() const
48a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    {
49a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if ENABLE(OILPAN)
50a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        return m_expression;
51a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#else
52a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        return &m_expression;
53a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif
54a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    }
55a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
56a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    bool result() const { return m_result; }
57a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
58a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)private:
59a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if ENABLE(OILPAN)
60a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    Member<const MediaQueryExp> m_expression;
61a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#else
62a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    MediaQueryExp m_expression;
63a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif
64a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    bool m_result;
65a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)};
66a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
67a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
68a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
69a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif
70a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)