1 //===-- BreakpointIDList.h --------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_BreakpointIDList_h_ 11 #define liblldb_BreakpointIDList_h_ 12 13 // C Includes 14 // C++ Includes 15 #include <vector> 16 17 // Other libraries and framework includes 18 // Project includes 19 20 #include "lldb/lldb-private.h" 21 #include "lldb/Breakpoint/BreakpointID.h" 22 23 namespace lldb_private { 24 25 //---------------------------------------------------------------------- 26 // class BreakpointIDList 27 //---------------------------------------------------------------------- 28 29 30 class BreakpointIDList 31 { 32 public: 33 typedef std::vector<BreakpointID> BreakpointIDArray; 34 35 BreakpointIDList (); 36 37 virtual 38 ~BreakpointIDList (); 39 40 size_t 41 GetSize(); 42 43 BreakpointID & 44 GetBreakpointIDAtIndex (size_t index); 45 46 bool 47 RemoveBreakpointIDAtIndex (size_t index); 48 49 void 50 Clear(); 51 52 bool 53 AddBreakpointID (BreakpointID bp_id); 54 55 bool 56 AddBreakpointID (const char *bp_id); 57 58 bool 59 FindBreakpointID (BreakpointID &bp_id, size_t *position); 60 61 bool 62 FindBreakpointID (const char *bp_id, size_t *position); 63 64 void 65 InsertStringArray (const char **string_array, size_t array_size, CommandReturnObject &result); 66 67 static bool 68 StringContainsIDRangeExpression (const char *in_string, size_t *range_start_len, size_t *range_end_pos); 69 70 static void 71 FindAndReplaceIDRanges (Args &old_args, Target *target, CommandReturnObject &result, Args &new_args); 72 73 private: 74 BreakpointIDArray m_breakpoint_ids; 75 BreakpointID m_invalid_id; 76 77 DISALLOW_COPY_AND_ASSIGN(BreakpointIDList); 78 }; 79 80 } // namespace lldb_private 81 82 #endif // liblldb_BreakpointIDList_h_ 83