LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
Public Member Functions | Private Member Functions | Private Attributes | List of all members
lsst.afw.display.ds9.Buffer Class Reference
Inheritance diagram for lsst.afw.display.ds9.Buffer:

Public Member Functions

def __init__
 
def set
 
def pushSize
 
def popSize
 
def flush
 

Private Member Functions

def _getSize
 

Private Attributes

 _commands
 
 _lenCommands
 
 _bufsize
 

Detailed Description

Control buffering the sending of commands to ds9;
annoying but necessary for anything resembling performance

The usual usage pattern (from a module importing this file, ds9.py) is probably:

   with ds9.Buffering():
       # bunches of ds9.{dot,line} commands
       ds9.flush()
       # bunches more ds9.{dot,line} commands

or (if you don't like "with")
   ds9.buffer()
   # bunches of ds9.{dot,line} commands
   ds9.flush()
   # bunches more ds9.{dot,line} commands
   ds9.buffer(False)

or (the old idiom):
   
   ds9.cmdBuffer.pushSize()
   # bunches of ds9.{dot,line} commands
   ds9.cmdBuffer.flush()
   # bunches more ds9.{dot,line} commands
   ds9.cmdBuffer.popSize()

Definition at line 235 of file ds9.py.

Constructor & Destructor Documentation

def lsst.afw.display.ds9.Buffer.__init__ (   self,
  size = 0 
)
Create a command buffer, with a maximum depth of size

Definition at line 262 of file ds9.py.

263  def __init__(self, size=0):
264  """Create a command buffer, with a maximum depth of size"""
265  self._commands = "" # list of pending commands
266  self._lenCommands = len(self._commands)
267  self._bufsize = [] # stack of bufsizes
268 
269  self._bufsize.append(size) # don't call self.size() as ds9Cmd isn't defined yet

Member Function Documentation

def lsst.afw.display.ds9.Buffer._getSize (   self)
private
Get the current ds9 buffer size

Definition at line 289 of file ds9.py.

290  def _getSize(self):
291  """Get the current ds9 buffer size"""
292  return self._bufsize[-1]
def lsst.afw.display.ds9.Buffer.flush (   self,
  silent = True 
)
Flush the pending commands

Definition at line 307 of file ds9.py.

308  def flush(self, silent=True):
309  """Flush the pending commands"""
310  ds9Cmd(flush=True, silent=silent)
311 
cmdBuffer = Buffer(0)
def lsst.afw.display.ds9.Buffer.popSize (   self)
Switch back to the previous command buffer size (see also pushSize)

Definition at line 300 of file ds9.py.

301  def popSize(self):
302  """Switch back to the previous command buffer size (see also pushSize)"""
303  self.flush(silent=True)
304 
305  if len(self._bufsize) > 1:
306  self._bufsize.pop()
def lsst.afw.display.ds9.Buffer.pushSize (   self,
  size = -1 
)
Replace current ds9 command buffer size with size (see also popSize)
@param:  Size of buffer (-1: largest possible given bugs in xpa)

Definition at line 293 of file ds9.py.

294  def pushSize(self, size=-1):
295  """Replace current ds9 command buffer size with size (see also popSize)
296  @param: Size of buffer (-1: largest possible given bugs in xpa)"""
297  self.flush(silent=True)
298  self._bufsize.append(0)
299  self.set(size, silent=True)
def lsst.afw.display.ds9.Buffer.set (   self,
  size,
  silent = True 
)
Set the ds9 buffer size to size

Definition at line 270 of file ds9.py.

271  def set(self, size, silent=True):
272  """Set the ds9 buffer size to size"""
273  if size < 0:
274  size = XPA_SZ_LINE - 5
275 
276  if size > XPA_SZ_LINE:
277  print >> sys.stderr, \
278  "xpa silently hardcodes a limit of %d for buffer sizes (you asked for %d) " % \
279  (XPA_SZ_LINE, size)
280  self.set(-1) # use max buffersize
281  return
282 
283  if self._bufsize:
284  self._bufsize[-1] = size # change current value
285  else:
286  self._bufsize.append(size) # there is no current value; set one
287 
288  self.flush(silent=silent)

Member Data Documentation

lsst.afw.display.ds9.Buffer._bufsize
private

Definition at line 266 of file ds9.py.

lsst.afw.display.ds9.Buffer._commands
private

Definition at line 264 of file ds9.py.

lsst.afw.display.ds9.Buffer._lenCommands
private

Definition at line 265 of file ds9.py.


The documentation for this class was generated from the following file: