public LuaFile(Stream stream, LuaFileOpenMode mode, bool leaveOpen = false) { m_contentType = LuaFileContentType.Binary; m_openMode = mode; m_stream = stream; m_leaveOpen = leaveOpen; }
public LuaFile(TextWriter writer, bool leaveOpen = false) { m_contentType = LuaFileContentType.Text; m_openMode = LuaFileOpenMode.Write; m_writer = writer; m_leaveOpen = leaveOpen; }
public LuaFile(TextReader reader, bool leaveOpen = false) { m_contentType = LuaFileContentType.Text; m_openMode = LuaFileOpenMode.Read; m_reader = reader; m_leaveOpen = leaveOpen; }
private void CheckFileMode(LuaFile file, string format, LuaFileOpenMode expectedMode, LuaFileContentType expectedType) { if (file.ContentType != expectedType || file.OpenMode != expectedMode) { throw new LuaError(string.Format( "Incorrect file mode for format {0}. Expected {1}, got {2}", format, GetFileModeString(expectedMode, expectedType), GetFileModeString(file.OpenMode, file.ContentType) )); } if (!file.IsOpen) { throw new LuaError("File is closed"); } }
private string GetFileModeString(LuaFileOpenMode mode, LuaFileContentType type) { if (mode == LuaFileOpenMode.Read && type == LuaFileContentType.Text) { return("r"); } else if (mode == LuaFileOpenMode.Read && type == LuaFileContentType.Binary) { return("rb"); } else if (mode == LuaFileOpenMode.Write && type == LuaFileContentType.Text) { return("w"); } else { return("wb"); } }
public LuaFunctionStream(LuaFunction function, LuaFileOpenMode mode) { m_function = function; m_mode = mode; m_buffer = new Queue <byte>(); }