mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-06-25 22:53:22 +00:00
6ccffe9742
- Move the encoding/decoding from the Filesystem implementation to the individual handles. - Move each handle into an core.apis.handles package from the main fs API. - Move the HTTP response to inherit from these handles. - Allow binary handles' read function to accept a number, specifying how many characters to read - these will be returned as a Lua string. - Add readAll to binary handles - Allow binary handles' write function to accept a string which is decoded into the individual bytes. - Add "binary" argument to http.request and friends in order to return a binary handle. - Ensure file handles are open when reading from/writing to them. - Return the error message when opening a file fails.
36 lines
777 B
Java
36 lines
777 B
Java
package dan200.computercraft.core.apis.handles;
|
|
|
|
import dan200.computercraft.api.lua.ILuaObject;
|
|
import dan200.computercraft.api.lua.LuaException;
|
|
|
|
import java.io.Closeable;
|
|
import java.io.IOException;
|
|
|
|
public abstract class HandleGeneric implements ILuaObject
|
|
{
|
|
protected final Closeable m_closable;
|
|
protected boolean m_open = true;
|
|
|
|
public HandleGeneric( Closeable m_closable )
|
|
{
|
|
this.m_closable = m_closable;
|
|
}
|
|
|
|
protected void checkOpen() throws LuaException
|
|
{
|
|
if( !m_open ) throw new LuaException( "attempt to use a closed file" );
|
|
}
|
|
|
|
protected void close()
|
|
{
|
|
try
|
|
{
|
|
m_closable.close();
|
|
m_open = false;
|
|
}
|
|
catch( IOException ignored )
|
|
{
|
|
}
|
|
}
|
|
}
|