StringList.h revision 73844aa19a7360b662e2be710fc3c969d6c86606
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt//===-- StringList.h --------------------------------------------*- C++ -*-===// 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// The LLVM Compiler Infrastructure 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt// This file is distributed under the University of Illinois Open Source 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt// License. See LICENSE.TXT for details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt// 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt//===----------------------------------------------------------------------===// 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef liblldb_StringList_h_ 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define liblldb_StringList_h_ 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include <stdint.h> 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "lldb/Core/STLUtils.h" 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "lldb/lldb-forward.h" 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtnamespace lldb_private { 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclass StringList 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{ 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtpublic: 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt StringList (); 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt StringList (const char *str); 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt StringList (const char **strv, int strc); 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt virtual 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt ~StringList (); 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt AppendString (const std::string &s); 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt AppendString (const char *str); 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt AppendString (const char *str, size_t str_len); 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void 438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt AppendList (const char ** strv, int strc); 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt AppendList (StringList strings); 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt bool 498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt ReadFileLines (FileSpec &input_file); 508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt uint32_t 528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt GetSize () const; 538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 54 const char * 55 GetStringAtIndex (size_t idx) const; 56 57 void 58 Join (const char *separator, Stream &strm); 59 60 void 61 Clear (); 62 63 void 64 LongestCommonPrefix (std::string &common_prefix); 65 66 void 67 InsertStringAtIndex (size_t id, const char *str); 68 69 void 70 DeleteStringAtIndex (size_t id); 71 72 void 73 RemoveBlankLines (); 74 75 size_t 76 SplitIntoLines (const char *lines, size_t len); 77 78 std::string 79 CopyList(const char* item_preamble = NULL, 80 const char* items_sep = "\n"); 81 82 StringList& 83 operator << (const char* str); 84 85 StringList& 86 operator << (StringList strings); 87 88 // This string list contains a list of valid auto completion 89 // strings, and the "s" is passed in. "matches" is filled in 90 // with zero or more string values that start with "s", and 91 // the first string to exactly match one of the string 92 // values in this collection, will have "exact_matches_idx" 93 // filled in to match the index, or "exact_matches_idx" will 94 // have SIZE_MAX 95 size_t 96 AutoComplete (const char *s, 97 StringList &matches, 98 size_t &exact_matches_idx) const; 99 100private: 101 102 STLStringArray m_strings; 103}; 104 105} // namespace lldb_private 106 107#endif // liblldb_StringList_h_ 108