Пример #1
0
 public LuaFile(Stream stream, LuaFileOpenMode mode, bool leaveOpen = false)
 {
     m_contentType = LuaFileContentType.Binary;
     m_openMode    = mode;
     m_stream      = stream;
     m_leaveOpen   = leaveOpen;
 }
Пример #2
0
 public LuaFile(TextWriter writer, bool leaveOpen = false)
 {
     m_contentType = LuaFileContentType.Text;
     m_openMode    = LuaFileOpenMode.Write;
     m_writer      = writer;
     m_leaveOpen   = leaveOpen;
 }
Пример #3
0
 public LuaFile(TextReader reader, bool leaveOpen = false)
 {
     m_contentType = LuaFileContentType.Text;
     m_openMode    = LuaFileOpenMode.Read;
     m_reader      = reader;
     m_leaveOpen   = leaveOpen;
 }
Пример #4
0
 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");
     }
 }
Пример #5
0
 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");
     }
 }
Пример #6
0
 public LuaFunctionStream(LuaFunction function, LuaFileOpenMode mode)
 {
     m_function = function;
     m_mode     = mode;
     m_buffer   = new Queue <byte>();
 }