| SUMMARY: CONSTR | METHOD | DETAIL: CONSTR | METHOD | 
Note that significant functionality is written in XS/C in order to minimize tracing/debugging overhead.
Permission is granted to use this software under the same terms as Perl itself. Refer to the Perl Artistic License for details.
Unless otherwise noted, $self
 is the object instance variable.
| Constructor Summary | 
|---|
| clone()Allocates a ring buffer, and initializes its header and control variables | 
| new($ringbuffer, $ringaddr, $baseaddr, $ringnum, $slots, $msgareasz)Allocates a ring buffer, and initializes its header and control variables | 
| open($ringbuffer, $ringaddr, $baseaddr, $ringnum, $slots, $msgareasz)Opens an existing ring buffer for read-only access | 
| Method Summary | 
|---|
| DESTROY()Destructor | 
| addWatch($expr)Allocate and initialize a watchlist entry | 
| checkCommand()Test if a command is available in the ring's command/message area | 
| checkResponse()Test if a response is available in the ring's command/message area | 
| freeSlot($address)Free the current slot and invalidates its contents | 
| freeWatch($watch)Free a watchlist entry | 
| getAddress()Get the ring base address | 
| getHeader()Get the ring header values | 
| getIndex()Get the ring number (i | 
| getSignal()Get the ring's signal flag | 
| getSlot($slot)Get the contents of the specified slot | 
| getTrace()Get the ring's trace flag | 
| getWatchExpr($watch)Get a watchlist expression entry | 
| getWatchResult($watch)Get a watchlist expression entry | 
| nextSlot($address, $entry)Allocate and initialize the next slot | 
| postCommand($command, $msg)Post a command to the ring's command/message area | 
| postResponse($response, $msg)Post a response to the ring's command/message area | 
| setSignal($signal)Set the ring's signal flag | 
| setTrace($trace)Set the ring's trace flag | 
| setWatchResult($watch, $result, $error)Set a watchlist result entry | 
| updateSlot($address, $linenumber)Update the current slot | 
| waitForCommand()Wait indefinitely for a command to be posted to the ring's command/message area | 
| waitForResponse()Wait indefinitely for a response to be posted to the ring's command/message area | 
| Constructor Details | 
|---|
open($ringbuffer, $ringaddr, $baseaddr, $ringnum, $slots, $msgareasz)
$ringbuffer - the Devel::RingBuffer object
$ringaddr - the base address of this ring
$baseaddr - base address of the complete ring buffer structure
$ringnum - the number (i.e., positional index) of this ring
$slots - number of slots per ring
$msgareasz - size of the per-thread message area
clone()
new($ringbuffer, $ringaddr, $baseaddr, $ringnum, $slots, $msgareasz)
$ringbuffer - the Devel::RingBuffer object
$ringaddr - the base address of this ring
$baseaddr - base address of the complete ring buffer structure
$ringnum - the number (i.e., positional index) of this ring
$slots - number of slots per ring
$msgareasz - size of the per-thread message area
| Method Details | 
|---|
DESTROY()
A future enhancement will add a flag to indicate to preserve the ring on exit for post-mortem analysis
addWatch($expr)
$expr - expression to set
checkCommand()
checkResponse()
freeSlot($address)
$address - class method calls only: base address of the ring
freeWatch($watch)
$watch - the watchlist entry number to free
getAddress()
getHeader()
getIndex()
getSignal()
getSlot($slot)
$slot - the number of the slot to return
getTrace()
getWatchExpr($watch)
$watch - the watchlist entry number to get
getWatchResult($watch)
$watch - the watchlist entry number to get
nextSlot($address, $entry)
Note: In future, this should return prior contents so we can restore on de-wrapping.
$address - class method calls only: base address of the ring
$entry - subroutine name (from $DB::sub)
postCommand($command, $msg)
$command - the command value to set; must be no more than 3 bytes
$msg - an optional message associated with the command; max length
is determined by configuration settings
postResponse($response, $msg)
$response - the response value to set; must be no more than 3 bytes
$msg - an optional message associated with the response; max length
is determined by configuration settings
setSignal($signal)
$signal - the value to set
setTrace($trace)
$trace - the value to set
setWatchResult($watch, $result, $error)
$watch - the watchlist entry number to set
$result - the result of the expression evaluation
$error - error string if expression evaluation fails
updateSlot($address, $linenumber)
$address - class method calls only: base address of the ring
$linenumber - linenumber of current statement
waitForCommand()
waitForResponse()