File: memory.py

package info (click to toggle)
felix 1.1.1-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,992 kB
  • ctags: 1,178
  • sloc: python: 7,260; makefile: 408; sh: 58
file content (34 lines) | stat: -rw-r--r-- 834 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#line 16 "interscript/src/storage_drivers.ipk"
from interscript.drivers.sources.base import source
from interscript.drivers.sources.base import eof
from interscript.drivers.sinks.base import sink_base

class memory(source,sink_base):
  def __init__(self,name,**kwds):
    source.__init__(self)
    sink_base.__init__(self)
    self.name = name
    self.saved = ''
    self.list = []
    for k in kwds.keys():
      self.k = kwds[k]
    self.closed = 0

  def raw_readline(self):
    if len(self.list)>self.lines_read:
      line = self.list[self.lines_read]
    else:
      raise eof
    self.lines_read = self.lines_read + 1
    return line

  def raw_eol(self):
    self.list.append(self.saved)
    self.saved = ''

  def rewind_source(self):
    self.lines_read = 0

  def raw_write(self,data):
    self.saved = self.saved + data