blob: 1d23c736d2a77252aee2659779854857f27b0695 [file] [log] [blame]
//===-- SBError.h -----------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLDB_SBError_h_
#define LLDB_SBError_h_
#include <LLDB/SBDefines.h>
namespace lldb {
class SBError {
public:
SBError ();
SBError (const SBError &rhs);
~SBError();
#ifndef SWIG
const SBError &
operator =(const SBError &rhs);
#endif
const char *
GetCString () const;
void
Clear ();
bool
Fail () const;
bool
Success () const;
uint32_t
GetError () const;
lldb::ErrorType
GetType () const;
void
SetError (uint32_t err, lldb::ErrorType type);
void
SetErrorToErrno ();
void
SetErrorToGenericError ();
void
SetErrorString (const char *err_str);
int
SetErrorStringWithFormat (const char *format, ...);
bool
IsValid () const;
protected:
friend class SBArguments;
friend class SBCommunication;
friend class SBHostOS;
friend class SBInputReader;
friend class SBProcess;
#ifndef SWIG
lldb_private::Error *
get();
lldb_private::Error *
operator->();
const lldb_private::Error &
operator*() const;
#endif
void
SetError (const lldb_private::Error &lldb_error);
private:
std::auto_ptr<lldb_private::Error> m_lldb_object_ap;
void
CreateIfNeeded ();
};
} // namespace lldb
#endif // LLDB_SBError_h_