TypeList.h revision 254721
1254721Semaste//===-- TypeList.h ----------------------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef liblldb_TypeList_h_ 11254721Semaste#define liblldb_TypeList_h_ 12254721Semaste 13254721Semaste#include "lldb/lldb-private.h" 14254721Semaste#include "lldb/Symbol/Type.h" 15254721Semaste#include <map> 16254721Semaste 17254721Semastenamespace lldb_private { 18254721Semaste 19254721Semasteclass TypeList 20254721Semaste{ 21254721Semastepublic: 22254721Semaste //------------------------------------------------------------------ 23254721Semaste // Constructors and Destructors 24254721Semaste //------------------------------------------------------------------ 25254721Semaste TypeList(); 26254721Semaste 27254721Semaste virtual 28254721Semaste ~TypeList(); 29254721Semaste 30254721Semaste void 31254721Semaste Clear(); 32254721Semaste 33254721Semaste void 34254721Semaste Dump(Stream *s, bool show_context); 35254721Semaste 36254721Semaste// lldb::TypeSP 37254721Semaste// FindType(lldb::user_id_t uid); 38254721Semaste 39254721Semaste TypeList 40254721Semaste FindTypes(const ConstString &name); 41254721Semaste 42254721Semaste void 43254721Semaste Insert (const lldb::TypeSP& type); 44254721Semaste 45254721Semaste bool 46254721Semaste InsertUnique (const lldb::TypeSP& type); 47254721Semaste 48254721Semaste uint32_t 49254721Semaste GetSize() const; 50254721Semaste 51254721Semaste lldb::TypeSP 52254721Semaste GetTypeAtIndex(uint32_t idx); 53254721Semaste 54254721Semaste void 55254721Semaste ForEach (std::function <bool(const lldb::TypeSP &type_sp)> const &callback) const; 56254721Semaste 57254721Semaste void 58254721Semaste ForEach (std::function <bool(lldb::TypeSP &type_sp)> const &callback); 59254721Semaste 60254721Semaste bool 61254721Semaste RemoveTypeWithUID (lldb::user_id_t uid); 62254721Semaste 63254721Semaste void 64254721Semaste RemoveMismatchedTypes (const char *qualified_typename, 65254721Semaste bool exact_match); 66254721Semaste 67254721Semaste void 68254721Semaste RemoveMismatchedTypes (const std::string &type_scope, 69254721Semaste const std::string &type_basename, 70254721Semaste lldb::TypeClass type_class, 71254721Semaste bool exact_match); 72254721Semaste 73254721Semaste void 74254721Semaste RemoveMismatchedTypes (lldb::TypeClass type_class); 75254721Semaste 76254721Semasteprivate: 77254721Semaste typedef std::multimap<lldb::user_id_t, lldb::TypeSP> collection; 78254721Semaste typedef collection::iterator iterator; 79254721Semaste typedef collection::const_iterator const_iterator; 80254721Semaste 81254721Semaste collection m_types; 82254721Semaste 83254721Semaste DISALLOW_COPY_AND_ASSIGN (TypeList); 84254721Semaste}; 85254721Semaste 86254721Semaste} // namespace lldb_private 87254721Semaste 88254721Semaste#endif // liblldb_TypeList_h_ 89