yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Arcady Goldmints-OrlovClean up unused includes.592de6cf

main
2.7 KiB94 linesraw
1//
2// Copyright (C) 2013 LunarG, Inc.
3//
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions
8// are met:
9//
10//    Redistributions of source code must retain the above copyright
11//    notice, this list of conditions and the following disclaimer.
12//
13//    Redistributions in binary form must reproduce the above
14//    copyright notice, this list of conditions and the following
15//    disclaimer in the documentation and/or other materials provided
16//    with the distribution.
17//
18//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
19//    contributors may be used to endorse or promote products derived
20//    from this software without specific prior written permission.
21//
22// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33// POSSIBILITY OF SUCH DAMAGE.
34//
35#ifndef WORKLIST_H_INCLUDED
36#define WORKLIST_H_INCLUDED
37
38#include <list>
39#include <mutex>
40#include <string>
41
42namespace glslang {
43
44    class TWorkItem {
45    public:
46        TWorkItem() { }
47        explicit TWorkItem(const std::string& s) :
48            name(s) { }
49        std::string name;
50        std::string results;
51        std::string resultsIndex;
52    };
53
54    class TWorklist {
55    public:
56        TWorklist() { }
57        virtual ~TWorklist() { }
58
59        void add(TWorkItem* item)
60        {
61            std::lock_guard<std::mutex> guard(mutex);
62            worklist.push_back(item);
63        }
64
65        bool remove(TWorkItem*& item)
66        {
67            std::lock_guard<std::mutex> guard(mutex);
68
69            if (worklist.empty())
70                return false;
71            item = worklist.front();
72            worklist.pop_front();
73
74            return true;
75        }
76
77        int size()
78        {
79            return (int)worklist.size();
80        }
81
82        bool empty()
83        {
84            return worklist.empty();
85        }
86
87    protected:
88        std::mutex mutex;
89        std::list<TWorkItem*> worklist;
90    };
91
92} // end namespace glslang
93
94#endif // WORKLIST_H_INCLUDED