NativeTextInput.hx 810 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package python.io;
  2. import haxe.io.Eof;
  3. import haxe.io.Input;
  4. import python.io.IInput;
  5. import python.io.IoTools;
  6. import python.io.NativeInput;
  7. import python.lib.Builtin;
  8. import python.lib.Bytearray;
  9. import python.lib.io.RawIOBase;
  10. import python.lib.io.IOBase.SeekSet;
  11. import python.lib.io.TextIOBase;
  12. class NativeTextInput extends NativeInput<TextIOBase> implements IInput {
  13. public function new (stream:TextIOBase) {
  14. super(stream);
  15. }
  16. override public function readByte():Int
  17. {
  18. var ret = stream.read(1);
  19. if (ret.length == 0) throwEof();
  20. return ret.charCodeAt(0);
  21. }
  22. public function seek( p : Int, pos : sys.io.FileSeek ) : Void
  23. {
  24. wasEof = false;
  25. IoTools.seekInTextMode(stream, tell, p, pos);
  26. }
  27. override function readinto (b:Bytearray):Int {
  28. return stream.buffer.readinto(b);
  29. }
  30. }