internal Plugin(DataContext context, string fileName, PluginMode mode)
{
this.context = context;
this.fileName = fileName;
if (mode == PluginMode.Create)
{
header = context.CreateHeader();
header.NextFormId = 0x800;
}
else if (mode == PluginMode.Open)
{
// Read only the header mainly to fetch the list of masters
Stream stream = context.DataFileProvider.GetDataFile(FileMode.Open, fileName).Open();
using (var reader = context.CreateReader(stream))
{
header = reader.ReadHeader();
}
}
else
{
throw new ArgumentException("Illegal plugin mode specified");
}
}