diff options
Diffstat (limited to 'include/lldb/Interpreter/PythonDataObjects.h')
-rw-r--r-- | include/lldb/Interpreter/PythonDataObjects.h | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/include/lldb/Interpreter/PythonDataObjects.h b/include/lldb/Interpreter/PythonDataObjects.h deleted file mode 100644 index df281b533cba8..0000000000000 --- a/include/lldb/Interpreter/PythonDataObjects.h +++ /dev/null @@ -1,280 +0,0 @@ -//===-- PythonDataObjects.h----------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef liblldb_PythonDataObjects_h_ -#define liblldb_PythonDataObjects_h_ - -// C Includes -// C++ Includes - -// Other libraries and framework includes -// Project includes -#include "lldb/lldb-defines.h" -#include "lldb/Core/ConstString.h" -#include "lldb/Core/StructuredData.h" -#include "lldb/Core/Flags.h" -#include "lldb/Interpreter/OptionValue.h" -#include "lldb/lldb-python.h" - -namespace lldb_private { -class PythonString; -class PythonList; -class PythonDictionary; -class PythonObject; -class PythonInteger; - -class StructuredPythonObject : public StructuredData::Generic -{ - public: - StructuredPythonObject() - : StructuredData::Generic() - { - } - - StructuredPythonObject(void *obj) - : StructuredData::Generic(obj) - { - Py_XINCREF(GetValue()); - } - - virtual ~StructuredPythonObject() - { - if (Py_IsInitialized()) - Py_XDECREF(GetValue()); - SetValue(nullptr); - } - - bool - IsValid() const override - { - return GetValue() && GetValue() != Py_None; - } - - void Dump(Stream &s) const override; - - private: - DISALLOW_COPY_AND_ASSIGN(StructuredPythonObject); -}; - -enum class PyObjectType -{ - Unknown, - None, - Integer, - Dictionary, - List, - String -}; - - class PythonObject - { - public: - PythonObject () : - m_py_obj(NULL) - { - } - - explicit PythonObject (PyObject* py_obj) : - m_py_obj(NULL) - { - Reset (py_obj); - } - - PythonObject (const PythonObject &rhs) : - m_py_obj(NULL) - { - Reset (rhs.m_py_obj); - } - - virtual - ~PythonObject () - { - Reset (NULL); - } - - bool - Reset (const PythonObject &object) - { - return Reset(object.get()); - } - - virtual bool - Reset (PyObject* py_obj = NULL) - { - if (py_obj != m_py_obj) - { - if (Py_IsInitialized()) - Py_XDECREF(m_py_obj); - m_py_obj = py_obj; - if (Py_IsInitialized()) - Py_XINCREF(m_py_obj); - } - return true; - } - - void - Dump () const - { - if (m_py_obj) - _PyObject_Dump (m_py_obj); - else - puts ("NULL"); - } - - void - Dump (Stream &strm) const; - - PyObject* - get () const - { - return m_py_obj; - } - - PyObjectType GetObjectType() const; - - PythonString - Repr (); - - PythonString - Str (); - - explicit operator bool () const - { - return m_py_obj != NULL; - } - - bool - IsNULLOrNone () const; - - StructuredData::ObjectSP CreateStructuredObject() const; - - protected: - PyObject* m_py_obj; - }; - - class PythonString: public PythonObject - { - public: - PythonString (); - PythonString (PyObject *o); - PythonString (const PythonObject &object); - PythonString (llvm::StringRef string); - PythonString (const char *string); - virtual ~PythonString (); - - virtual bool - Reset (PyObject* py_obj = NULL); - - llvm::StringRef - GetString() const; - - size_t - GetSize() const; - - void SetString(llvm::StringRef string); - - StructuredData::StringSP CreateStructuredString() const; - }; - - class PythonInteger: public PythonObject - { - public: - - PythonInteger (); - PythonInteger (PyObject* py_obj); - PythonInteger (const PythonObject &object); - PythonInteger (int64_t value); - virtual ~PythonInteger (); - - virtual bool - Reset (PyObject* py_obj = NULL); - - int64_t GetInteger() const; - - void - SetInteger (int64_t value); - - StructuredData::IntegerSP CreateStructuredInteger() const; - }; - - class PythonList: public PythonObject - { - public: - - PythonList (bool create_empty); - PythonList (PyObject* py_obj); - PythonList (const PythonObject &object); - PythonList (uint32_t count); - virtual ~PythonList (); - - virtual bool - Reset (PyObject* py_obj = NULL); - - uint32_t GetSize() const; - - PythonObject GetItemAtIndex(uint32_t index) const; - - void - SetItemAtIndex (uint32_t index, const PythonObject &object); - - void - AppendItem (const PythonObject &object); - - StructuredData::ArraySP CreateStructuredArray() const; - }; - - class PythonDictionary: public PythonObject - { - public: - - explicit PythonDictionary (bool create_empty); - PythonDictionary (PyObject* object); - PythonDictionary (const PythonObject &object); - virtual ~PythonDictionary (); - - virtual bool - Reset (PyObject* object = NULL); - - uint32_t GetSize() const; - - PythonObject - GetItemForKey (const PythonString &key) const; - - const char * - GetItemForKeyAsString (const PythonString &key, const char *fail_value = NULL) const; - - int64_t - GetItemForKeyAsInteger (const PythonString &key, int64_t fail_value = 0) const; - - PythonObject - GetItemForKey (const char *key) const; - - typedef bool (*DictionaryIteratorCallback)(PythonString* key, PythonDictionary* dict); - - PythonList - GetKeys () const; - - PythonString - GetKeyAtPosition (uint32_t pos) const; - - PythonObject - GetValueAtPosition (uint32_t pos) const; - - void - SetItemForKey (const PythonString &key, PyObject *value); - - void - SetItemForKey (const PythonString &key, const PythonObject& value); - - StructuredData::DictionarySP CreateStructuredDictionary() const; - }; - -} // namespace lldb_private - -#endif // liblldb_PythonDataObjects_h_ |