124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SymbolVendorMacOSX.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 liblldb_SymbolVendorMacOSX_h_
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define liblldb_SymbolVendorMacOSX_h_
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/lldb-private.h"
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/Symbol/SymbolVendor.h"
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SymbolVendorMacOSX : public lldb_private::SymbolVendor
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic:
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // Static Functions
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static void
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Initialize();
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static void
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Terminate();
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
280e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton    static lldb_private::ConstString
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetPluginNameStatic();
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static const char *
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetPluginDescriptionStatic();
3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static lldb_private::SymbolVendor*
35188091899842b140313b54e097f16efbe165c998Greg Clayton    CreateInstance (const lldb::ModuleSP &module_sp, lldb_private::Stream *feedback_strm);
3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // Constructors and Destructors
3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
403508c387c3f0c9ecc439d98048fd7694d41bab1bGreg Clayton    SymbolVendorMacOSX (const lldb::ModuleSP &module_sp);
4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    virtual
4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    ~SymbolVendorMacOSX();
4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // PluginInterface protocol
4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
480e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton    virtual lldb_private::ConstString
4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetPluginName();
5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    virtual uint32_t
5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetPluginVersion();
5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate:
5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    DISALLOW_COPY_AND_ASSIGN (SymbolVendorMacOSX);
5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif  // liblldb_SymbolVendorMacOSX_h_
59