aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sisfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisfile.h')
-rw-r--r--lib/sisfile.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/sisfile.h b/lib/sisfile.h
new file mode 100644
index 0000000..5f0bcd5
--- /dev/null
+++ b/lib/sisfile.h
@@ -0,0 +1,53 @@
+#ifndef _SISFILE_H
+#define _SISFILE_H
+
+#include "sistypes.h"
+#include "sisfileheader.h"
+#include "siscomponentrecord.h"
+
+class SISLangRecord;
+class SISFileRecord;
+class SISReqRecord;
+
+/**
+ * The top level container of a SIS file.
+ * Based on documentation by Alexander Thoukydides <alex@thouky.co.uk>.
+ *
+ * @author Daniel Brahneborg, 2002
+ */
+class SISFile
+{
+public:
+ /**
+ * Populate the fields.
+ */
+ void fillFrom(uchar* buf);
+
+ int getLanguage();
+
+ /**
+ * Find a language entry, based on the sequence number in the SISLangRecord
+ * part of the file.
+ */
+ LangTableEntry* getLanguage(int i);
+
+ /**
+ * Get the name of this component, in the selected language.
+ */
+ uchar* getName();
+
+ void setLanguage(int lang);
+
+ SISFileHeader m_header;
+ SISLangRecord* m_langRecords;
+ SISFileRecord* m_fileRecords;
+ SISReqRecord* m_reqRecords;
+
+private:
+
+ SISComponentNameRecord m_componentRecord;
+
+};
+
+#endif
+