| //===-- Baton.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_Baton_h_ |
| #define lldb_Baton_h_ |
| |
| // C Includes |
| // C++ Includes |
| // Other libraries and framework includes |
| // Project includes |
| #include "lldb/lldb-include.h" |
| |
| namespace lldb_private { |
| |
| //---------------------------------------------------------------------- |
| /// @class Baton Baton.h "lldb/Core/Baton.h" |
| /// @brief A class designed to wrap callback batons so they can cleanup |
| /// any acquired resources |
| /// |
| /// This class is designed to be used by any objects that have a |
| /// callback function that takes a baton where the baton might need to |
| /// free/delete/close itself. |
| /// |
| /// The default behavior is to not free anything. Subclasses can |
| /// free any needed resources in their destructors. |
| //---------------------------------------------------------------------- |
| class Baton |
| { |
| public: |
| explicit Baton(void *p) : |
| m_data (p) |
| { |
| } |
| |
| virtual |
| ~Baton() |
| { |
| // The default destructor for a baton does NOT attempt to clean up |
| // anything in m_baton |
| } |
| |
| virtual void |
| GetDescription (Stream *s, lldb::DescriptionLevel level) const; |
| |
| void *m_data; // Leave baton public for easy access |
| |
| private: |
| //------------------------------------------------------------------ |
| // For Baton only |
| //------------------------------------------------------------------ |
| DISALLOW_COPY_AND_ASSIGN (Baton); |
| }; |
| |
| } // namespace lldb_private |
| |
| #endif // lldb_Baton_h_ |