retdec
language.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_COMMON_LANGUAGE_H
8 #define RETDEC_COMMON_LANGUAGE_H
9 
10 #include <set>
11 #include <string>
12 
13 namespace retdec {
14 namespace common {
15 
20 class Language
21 {
22  public:
23  Language();
24  Language(const std::string& langName);
25 
28  bool isUnknown() const;
29  bool isKnown() const;
30  bool isModuleCountSet() const;
31  bool isBytecode() const;
33 
36  void setName(const std::string& n);
37  void setIsUnknown();
38  void setModuleCount(unsigned c);
39  void setIsBytecode(bool b);
41 
44  std::string getName() const;
45  unsigned getModuleCount() const;
47 
48  bool operator<(const Language& val) const;
49  bool operator==(const Language& val) const;
50 
51  private:
53  std::string _name;
54  int _moduleCount = -1;
55  bool _bytecode = false;
56 };
57 
62 class LanguageContainer : public std::set<Language>
63 {
64  public:
65  const Language* getFirstBytecode() const;
66  bool hasLanguage(const std::string& sub) const;
67 };
68 
69 } // namespace common
70 } // namespace retdec
71 
72 #endif
Definition: language.h:63
const Language * getFirstBytecode() const
Definition: language.cpp:75
bool hasLanguage(const std::string &sub) const
Definition: language.cpp:88
Definition: language.h:21
unsigned getModuleCount() const
Definition: language.cpp:40
void setIsBytecode(bool b)
Definition: language.cpp:38
void setModuleCount(unsigned c)
Definition: language.cpp:37
int _moduleCount
Definition: language.h:54
bool isUnknown() const
Definition: language.cpp:30
bool operator<(const Language &val) const
Definition: language.cpp:53
bool _bytecode
Definition: language.h:55
bool isBytecode() const
Definition: language.cpp:33
void setIsUnknown()
Definition: language.cpp:36
void setName(const std::string &n)
Definition: language.cpp:35
std::string _name
Unique ID.
Definition: language.h:53
bool isKnown() const
Definition: language.cpp:31
std::string getName() const
Definition: language.cpp:42
bool isModuleCountSet() const
Definition: language.cpp:32
bool operator==(const Language &val) const
Definition: language.cpp:61
Language()
Definition: language.cpp:19
Definition: archive_wrapper.h:19