* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
* Copyright 2014, Rene Gollent, rene@gollent.com.
* Distributed under the terms of the MIT License.
*/
#ifndef DWARF_MANAGER_H
#define DWARF_MANAGER_H
#include <Locker.h>
#include <util/DoublyLinkedList.h>
class DwarfFile;
struct DwarfFileLoadingState;
class DwarfManager {
public:
DwarfManager(uint8 addressSize, bool isBigEndian);
~DwarfManager();
status_t Init();
bool Lock() { return fLock.Lock(); }
void Unlock() { fLock.Unlock(); }
status_t LoadFile(const char* fileName,
DwarfFileLoadingState& _loadingState);
status_t FinishLoading();
private:
typedef DoublyLinkedList<DwarfFile> FileList;
private:
uint8 fAddressSize;
bool fIsBigEndian;
BLocker fLock;
FileList fFiles;
};
#endif