Scope.h revision a2723d26427f7db19777dfed330047253e7a4e1b
1#ifndef SCOPE_H_
2
3#define SCOPE_H_
4
5#include "NamedType.h"
6
7#include <utils/KeyedVector.h>
8#include <utils/Vector.h>
9
10namespace android {
11
12struct Constant;
13
14struct Scope : public NamedType {
15    Scope(const char *name);
16
17    bool addType(NamedType *type);
18    Type *lookupType(const char *name) const;
19
20    bool addConstant(Constant *constant);
21
22    void dump(Formatter &out) const override;
23    bool isScope() const override;
24    bool containsSingleInterface(std::string *ifaceName) const;
25
26private:
27    Vector<Type *> mTypes;
28    KeyedVector<std::string, size_t> mTypeIndexByName;
29
30    KeyedVector<std::string, Constant *> mConstants;
31
32    DISALLOW_COPY_AND_ASSIGN(Scope);
33};
34
35}  // namespace android
36
37#endif  // SCOPE_H_
38
39