dissect.esedb.cursor

Module Contents

Classes

Cursor

A simple cursor implementation for searching the ESE B+Trees

Functions

find_node

Search the tree, starting from the given page and search for key.

class dissect.esedb.cursor.Cursor(esedb: dissect.esedb.esedb.EseDB, page: int | dissect.esedb.page.Page)

A simple cursor implementation for searching the ESE B+Trees

Parameters:
  • esedb – An instance of EseDB.

  • page – The page to open a cursor on.

node() dissect.esedb.page.Node

Return the node the cursor is currently on.

next() dissect.esedb.page.Node

Move the cursor to the next node and return it.

Can move the cursor to the next page as a side effect.

next_page() None

Move the cursor to the next page in the tree.

Raises:

NoNeighbourPageError – If the current page has no next page.

prev() dissect.esedb.page.Node

Move the cursor to the previous node and return it.

Can move the cursor to the previous page as a side effect.

prev_page() None

Move the cursor to the previous page in the tree.

Raises:

NoNeighbourPageError – If the current page has no previous page.

search(key: bytes, exact: bool = True) dissect.esedb.page.Node

Search the tree for the given key.

Moves the cursor to the matching node, or on the last node that is less than the requested key.

Parameters:
  • key – The key to search for.

  • exact – Whether to only return successfully on an exact match.

Raises:

KeyNotFoundError – If an exact match was requested but not found.

dissect.esedb.cursor.find_node(page: dissect.esedb.page.Page, key: bytes) dissect.esedb.page.Node

Search the tree, starting from the given page and search for key.

Parameters:
  • page – The page to start searching from. Should be a branch page.

  • key – The key to search.