1*52a38012Sejakowatz // ResourceItem.h 2*52a38012Sejakowatz 3*52a38012Sejakowatz #ifndef RESOURCE_ITEM_H 4*52a38012Sejakowatz #define RESOURCE_ITEM_H 5*52a38012Sejakowatz 6*52a38012Sejakowatz #include <String.h> 7*52a38012Sejakowatz #include <SupportDefs.h> 8*52a38012Sejakowatz 9*52a38012Sejakowatz class BPositionIO; 10*52a38012Sejakowatz 11*52a38012Sejakowatz class ResourceItem { 12*52a38012Sejakowatz public: 13*52a38012Sejakowatz typedef int32 roff_t; 14*52a38012Sejakowatz 15*52a38012Sejakowatz public: 16*52a38012Sejakowatz ResourceItem(); 17*52a38012Sejakowatz virtual ~ResourceItem(); 18*52a38012Sejakowatz 19*52a38012Sejakowatz void SetLocation(roff_t offset, roff_t size); 20*52a38012Sejakowatz void SetIdentity(type_code type, int32 id, 21*52a38012Sejakowatz const char* name); 22*52a38012Sejakowatz 23*52a38012Sejakowatz void SetOffset(roff_t offset); 24*52a38012Sejakowatz roff_t GetOffset() const; 25*52a38012Sejakowatz 26*52a38012Sejakowatz void SetSize(roff_t size); 27*52a38012Sejakowatz roff_t GetSize() const; 28*52a38012Sejakowatz 29*52a38012Sejakowatz void SetType(type_code type); 30*52a38012Sejakowatz type_code GetType() const; 31*52a38012Sejakowatz 32*52a38012Sejakowatz void SetID(int32 id); 33*52a38012Sejakowatz int32 GetID() const; 34*52a38012Sejakowatz 35*52a38012Sejakowatz void SetName(const char* name); 36*52a38012Sejakowatz const char* GetName() const; 37*52a38012Sejakowatz 38*52a38012Sejakowatz void SetData(const void* data, roff_t size = -1); 39*52a38012Sejakowatz void UnsetData(); 40*52a38012Sejakowatz void* AllocData(roff_t size = -1); 41*52a38012Sejakowatz void* GetData() const; 42*52a38012Sejakowatz 43*52a38012Sejakowatz status_t LoadData(BPositionIO& file, 44*52a38012Sejakowatz roff_t position = -1, 45*52a38012Sejakowatz roff_t size = -1); 46*52a38012Sejakowatz status_t WriteData(BPositionIO& file) const; 47*52a38012Sejakowatz 48*52a38012Sejakowatz void PrintToStream(); 49*52a38012Sejakowatz 50*52a38012Sejakowatz private: 51*52a38012Sejakowatz roff_t fOffset; 52*52a38012Sejakowatz roff_t fSize; 53*52a38012Sejakowatz type_code fType; 54*52a38012Sejakowatz int32 fID; 55*52a38012Sejakowatz BString fName; 56*52a38012Sejakowatz void* fData; 57*52a38012Sejakowatz }; 58*52a38012Sejakowatz 59*52a38012Sejakowatz #endif // RESOURCE_ITEM_H 60