Package envi :: Package memcanvas :: Package renderers
[hide private]
[frames] | no frames]

Source Code for Package envi.memcanvas.renderers

 1   
 2  """ 
 3  Some of the basic/universal memory renderers. 
 4  """ 
 5   
 6  import struct 
 7   
 8  import envi.memcanvas as e_canvas 
 9   
10 -class ByteRend(e_canvas.MemoryRenderer):
11 12 __fmt_char__ = "B" 13
14 - def __init__(self, bigend=False):
15 16 self.fmtbase = "<" 17 if bigend: 18 self.fmtbase = ">" 19 20 self.width = struct.calcsize("%s%s" % (self.fmtbase,self.__class__.__fmt_char__)) 21 self.dispfmt = "%%.%dx" % (self.width*2) 22 cnt = 16 / self.width 23 self.packfmt = self.fmtbase + (self.__class__.__fmt_char__ * cnt)
24
25 - def render(self, mcanv, va):
26 bytes = mcanv.mem.readMemory(va, 16) 27 self.rendVa(mcanv, va) 28 mcanv.addText(" ") 29 30 for val in mcanv.mem.readMemoryFormat(va, self.packfmt): 31 bstr = self.dispfmt % val 32 if mcanv.mem.isValidPointer(val): 33 mcanv.addVaText(bstr, val) 34 else: 35 mcanv.addNameText(bstr) 36 37 mcanv.addText(" ") 38 39 mcanv.addText(" ") 40 self.rendChars(mcanv, bytes) 41 mcanv.addText("\n") 42 return 16
43
44 -class ShortRend(ByteRend):
45 46 __fmt_char__ = "H"
47
48 -class LongRend(ByteRend):
49 50 __fmt_char__ = "L"
51
52 -class QuadRend(ByteRend):
53 __fmt_char__ = "Q"
54