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()