class documentation

class Sessions(object):

View In Hierarchy

A list of the sessions that a REVEN server tracks.

The links generated e.g. by displaying a Transition in a Jupyter Notebook will send events to all the clients listening to the currently tracked sessions.

Warnings

This object is not meant to be constructed directly. Use RevenServer.sessions instead.

Method __init__ Undocumented
Property tracked Property: The list of the currently tracked sessions.
Method publish_transition Send the passed transition to all clients that are listening to the currently tracked sessions.
Method publish_address Send the passed address to all clients that are listening to the currently tracked sessions.
Method tracked.setter Undocumented
Method available A generator of the sessions known to the server.
Method active A generator of the sessions to which at least one client is currently connected.
Method __repr__ Undocumented
Class Variable _instances Undocumented
Instance Variable _rvn Undocumented
Instance Variable _sessions Undocumented
Method _publish_transition Undocumented
Method _publish_address Undocumented
Method _js_publish_transition Undocumented
Method _js_publish_address Undocumented
_instances =

Undocumented

(type: _weakref.WeakValueDictionary)
def __init__(self, _rvn, sessions=None):

Undocumented

_rvn =

Undocumented

_sessions =

Undocumented

@property
tracked =

Property: The list of the currently tracked sessions.

Examples

>>> # Access the list of currently tracked sessions
>>> reven_server.sessions.tracked
[Session('default', 1)]
>>> # Only track session 'axion' going forward
>>> reven_server.sessions.tracked = 'axion'
>>> reven_server.sessions.tracked
[Session('axion', 0)]
>>> # Add back the default session
>>> reven_server.sessions.tracked.append("default")
>>> reven_server.sessions.tracked
[Session('axion', 0), Session('default', 1)]
>>> # Follow all available sessions
>>> reven_server.sessions.tracked = reven_server.sessions.available()
>>> reven_server.sessions.tracked
[Session('test', 4), Session('default', 1), Session('axion', 0)]
def publish_transition(self, transition):

Send the passed transition to all clients that are listening to the currently tracked sessions.

The actual response of the clients to this event is client-specific. In Axion, the published transition will be selected.

Examples

>>> # Publish transition #100 to clients
>>> reven_server.sessions.publish_transition(reven_server.trace.transition(100))
True

Information

ParameterstransitionThe reven2.trace.Transition to send.
ReturnsTrue if there were some clients listening, False otherwise.
def publish_address(self, address, size=None, address_name=None):

Send the passed address to all clients that are listening to the currently tracked sessions.

The size and addr_name values, if provided, override the name and size values of the address' formatter. The actual response of the clients to this event is client-specific. In Axion, the published address will open an hexdump widget.

Examples

>>> # Publish address LogicalAddress(0x180, reven2.arch.x64.gs) to clients
>>> reven_server.sessions.publish_address(reven2.address.LogicalAddress(0x180, reven2.arch.x64.gs))
True

Information

ParametersaddressThe reven2.address.LogicalAddress, reven2.address.LogicalAddressSegmentIndex or reven2.address.LinearAddress to send.
sizethe size of the address, this value is e.g. used in axion to customize display mode in the hexdump, if None the address's default formatter size is used.
address_nameString, is e.g. used in axion to name the hexdump, if None the address's default formatter name is used.
ReturnsTrue if there were some clients listening, False otherwise.
def _publish_transition(self, transition_id):

Undocumented

def _publish_address(self, address, size, addr_name):

Undocumented

@tracked.setter
def tracked(self, sessions=None):

Undocumented

def available(self):

A generator of the sessions known to the server.

Information

Returnsa generator of Session objects
def active(self):

A generator of the sessions to which at least one client is currently connected.

Information

Returnsa generator of Session objects
def __repr__(self):

Undocumented

def _js_publish_transition(self, transition_id):

Undocumented

def _js_publish_address(self, address_data, size, name):

Undocumented

API Documentation for reven2, generated by pydoctor 21.2.2 at 2021-10-01 07:17:11.