Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h
Show All 39 Lines | |||||
}; | }; | ||||
llvm::StringRef toString(Record::Kind K); | llvm::StringRef toString(Record::Kind K); | ||||
inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, Record::Kind K) { | inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, Record::Kind K) { | ||||
OS << toString(K); | OS << toString(K); | ||||
return OS; | return OS; | ||||
} | } | ||||
class ModuleRecord : public Record { | class ModuleRecord : public Record { | ||||
lemo: coding-convention-wise: should these definitions use struct instead of class? | |||||
labathAuthorUnsubmitted I don't think we have a strict rule about this case, but personally, when something starts using inheritance, I tend to think of it as a class. labath: I don't think we have a strict rule about this case, but personally, when something starts… | |||||
public: | public: | ||||
static llvm::Optional<ModuleRecord> parse(llvm::StringRef Line); | static llvm::Optional<ModuleRecord> parse(llvm::StringRef Line); | ||||
ModuleRecord(llvm::Triple::OSType OS, llvm::Triple::ArchType Arch, UUID ID) | ModuleRecord(llvm::Triple::OSType OS, llvm::Triple::ArchType Arch, UUID ID) | ||||
: Record(Module), OS(OS), Arch(Arch), ID(std::move(ID)) {} | : Record(Module), OS(OS), Arch(Arch), ID(std::move(ID)) {} | ||||
llvm::Triple::OSType getOS() const { return OS; } | |||||
llvm::Triple::ArchType getArch() const { return Arch; } | |||||
const UUID &getID() const { return ID; } | |||||
private: | |||||
llvm::Triple::OSType OS; | llvm::Triple::OSType OS; | ||||
llvm::Triple::ArchType Arch; | llvm::Triple::ArchType Arch; | ||||
UUID ID; | UUID ID; | ||||
}; | }; | ||||
bool operator==(const ModuleRecord &L, const ModuleRecord &R); | bool operator==(const ModuleRecord &L, const ModuleRecord &R) { | ||||
lemoUnsubmitted const method qualifier? lemo: const method qualifier? | |||||
labathAuthorUnsubmitted This is a free function, not a method. :) labath: This is a free function, not a method. :) | |||||
return L.OS == R.OS && L.Arch == R.Arch && L.ID == R.ID; | |||||
} | |||||
llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const ModuleRecord &R); | llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const ModuleRecord &R); | ||||
class InfoRecord : public Record { | class InfoRecord : public Record { | ||||
public: | public: | ||||
static llvm::Optional<InfoRecord> parse(llvm::StringRef Line); | static llvm::Optional<InfoRecord> parse(llvm::StringRef Line); | ||||
InfoRecord(UUID ID) : Record(Info), ID(std::move(ID)) {} | InfoRecord(UUID ID) : Record(Info), ID(std::move(ID)) {} | ||||
const UUID &getID() const { return ID; } | |||||
private: | |||||
UUID ID; | UUID ID; | ||||
}; | }; | ||||
inline bool operator==(const InfoRecord &L, const InfoRecord &R) { | inline bool operator==(const InfoRecord &L, const InfoRecord &R) { | ||||
lemoUnsubmitted ditto lemo: ditto | |||||
return L.getID() == R.getID(); | return L.ID == R.ID; | ||||
} | } | ||||
llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const InfoRecord &R); | llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const InfoRecord &R); | ||||
class FuncRecord : public Record { | class FuncRecord : public Record { | ||||
public: | public: | ||||
static llvm::Optional<FuncRecord> parse(llvm::StringRef Line); | static llvm::Optional<FuncRecord> parse(llvm::StringRef Line); | ||||
FuncRecord(bool Multiple, lldb::addr_t Address, lldb::addr_t Size, | FuncRecord(bool Multiple, lldb::addr_t Address, lldb::addr_t Size, | ||||
lldb::addr_t ParamSize, llvm::StringRef Name) | lldb::addr_t ParamSize, llvm::StringRef Name) | ||||
: Record(Module), Multiple(Multiple), Address(Address), Size(Size), | : Record(Module), Multiple(Multiple), Address(Address), Size(Size), | ||||
ParamSize(ParamSize), Name(Name) {} | ParamSize(ParamSize), Name(Name) {} | ||||
bool getMultiple() const { return Multiple; } | |||||
lldb::addr_t getAddress() const { return Address; } | |||||
lldb::addr_t getSize() const { return Size; } | |||||
lldb::addr_t getParamSize() const { return ParamSize; } | |||||
llvm::StringRef getName() const { return Name; } | |||||
private: | |||||
bool Multiple; | bool Multiple; | ||||
lldb::addr_t Address; | lldb::addr_t Address; | ||||
lldb::addr_t Size; | lldb::addr_t Size; | ||||
lldb::addr_t ParamSize; | lldb::addr_t ParamSize; | ||||
llvm::StringRef Name; | llvm::StringRef Name; | ||||
}; | }; | ||||
bool operator==(const FuncRecord &L, const FuncRecord &R); | bool operator==(const FuncRecord &L, const FuncRecord &R); | ||||
llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const FuncRecord &R); | llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const FuncRecord &R); | ||||
class PublicRecord : public Record { | class PublicRecord : public Record { | ||||
public: | public: | ||||
static llvm::Optional<PublicRecord> parse(llvm::StringRef Line); | static llvm::Optional<PublicRecord> parse(llvm::StringRef Line); | ||||
PublicRecord(bool Multiple, lldb::addr_t Address, lldb::addr_t ParamSize, | PublicRecord(bool Multiple, lldb::addr_t Address, lldb::addr_t ParamSize, | ||||
llvm::StringRef Name) | llvm::StringRef Name) | ||||
: Record(Module), Multiple(Multiple), Address(Address), | : Record(Module), Multiple(Multiple), Address(Address), | ||||
ParamSize(ParamSize), Name(Name) {} | ParamSize(ParamSize), Name(Name) {} | ||||
bool getMultiple() const { return Multiple; } | |||||
lldb::addr_t getAddress() const { return Address; } | |||||
lldb::addr_t getParamSize() const { return ParamSize; } | |||||
llvm::StringRef getName() const { return Name; } | |||||
private: | |||||
bool Multiple; | bool Multiple; | ||||
lldb::addr_t Address; | lldb::addr_t Address; | ||||
lldb::addr_t ParamSize; | lldb::addr_t ParamSize; | ||||
llvm::StringRef Name; | llvm::StringRef Name; | ||||
}; | }; | ||||
bool operator==(const PublicRecord &L, const PublicRecord &R); | bool operator==(const PublicRecord &L, const PublicRecord &R); | ||||
llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const PublicRecord &R); | llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const PublicRecord &R); | ||||
} // namespace breakpad | } // namespace breakpad | ||||
} // namespace lldb_private | } // namespace lldb_private | ||||
#endif // LLDB_PLUGINS_OBJECTFILE_BREAKPAD_BREAKPADRECORDS_H | #endif // LLDB_PLUGINS_OBJECTFILE_BREAKPAD_BREAKPADRECORDS_H |
coding-convention-wise: should these definitions use struct instead of class?