124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBError.h -----------------------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef LLDB_SBError_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBError_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h" 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb { 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBError { 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBError (); 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 21538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBError (const lldb::SBError &rhs); 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~SBError(); 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const SBError & 26538eb82a89a68dbc57251915080bd5152b333978Greg Clayton operator =(const lldb::SBError &rhs); 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const char * 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetCString () const; 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Clear (); 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Fail () const; 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Success () const; 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetError () const; 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::ErrorType 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetType () const; 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetError (uint32_t err, lldb::ErrorType type); 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetErrorToErrno (); 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetErrorToGenericError (); 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetErrorString (const char *err_str); 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner int 597e5fa7fc1f8efd24c078e063b2c4b5e13ba5be20Jason Molenda SetErrorStringWithFormat (const char *format, ...) __attribute__ ((format (printf, 2, 3))); 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValid () const; 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6498f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice bool 6598f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice GetDescription (lldb::SBStream &description); 6698f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 681ebdcc7789aac1ef30ad6dcd485dff86c63136adGreg Clayton 69b9d995d0863e1860c12c4ace0d5eb0ba832f9c99Enrico Granata friend class SBCommandReturnObject; 70915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata friend class SBData; 716e4c5ce0f697eb9899a54854a2a9004e961b0de2Caroline Tice friend class SBDebugger; 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBCommunication; 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBHostOS; 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBInputReader; 7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBProcess; 761ebdcc7789aac1ef30ad6dcd485dff86c63136adGreg Clayton friend class SBThread; 77c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63Greg Clayton friend class SBTarget; 78c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63Greg Clayton friend class SBValue; 791fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton friend class SBWatchpoint; 8024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb_private::Error * 8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner get(); 8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb_private::Error * 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator->(); 8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb_private::Error & 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator*() const; 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 900baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb_private::Error & 910baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton ref(); 920baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 9324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 9424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SetError (const lldb_private::Error &lldb_error); 9524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 97102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton std::unique_ptr<lldb_private::Error> m_opaque_ap; 9824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 10024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CreateIfNeeded (); 10124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 10224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb 10524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBError_h_ 107