root/src/kits/debugger/debug_info/DwarfTeamDebugInfo.h
/*
 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
 * Copyright 2014-2016, Rene Gollent, rene@gollent.com.
 * Distributed under the terms of the MIT License.
 */
#ifndef DWARF_TEAM_DEBUG_INFO_H
#define DWARF_TEAM_DEBUG_INFO_H

#include "SpecificTeamDebugInfo.h"


class Architecture;
class DebuggerInterface;
class DwarfManager;
class FileManager;
class ImageInfo;
class GlobalTypeCache;
class GlobalTypeLookup;
class TeamFunctionSourceInformation;
class TeamMemory;


class DwarfTeamDebugInfo : public SpecificTeamDebugInfo {
public:
                                                                DwarfTeamDebugInfo(Architecture* architecture,
                                                                        DebuggerInterface* interface,
                                                                        FileManager* fileManager,
                                                                        GlobalTypeLookup* typeLookup,
                                                                        TeamFunctionSourceInformation* sourceInfo,
                                                                        GlobalTypeCache* typeCache);
        virtual                                         ~DwarfTeamDebugInfo();

                        status_t                        Init();

        virtual status_t                        CreateImageDebugInfo(const ImageInfo& imageInfo,
                                                                        LocatableFile* imageFile,
                                                                        ImageDebugInfoLoadingState& _state,
                                                                        SpecificImageDebugInfo*& _imageDebugInfo);

private:
                        Architecture*           fArchitecture;
                        DebuggerInterface*      fDebuggerInterface;
                        FileManager*            fFileManager;
                        DwarfManager*           fManager;
                        GlobalTypeLookup*       fTypeLookup;
                        TeamFunctionSourceInformation* fSourceInfo;
                        GlobalTypeCache*        fTypeCache;
};


#endif  // DWARF_TEAM_DEBUG_INFO_H