Moodle APIs
3.8
Moodle 3.8.6 (Build: 20201109)
|
Abstract xml parser processor able to group chunks as configured and dispatch them to other arbitrary methods. More...
Public Member Functions | |
__construct (array $paths=array()) | |
add_path ($path) | |
add_path ($path, $grouped=false) | |
after_path ($path) | |
The parser fires this each time one path has been parsed. More... | |
before_path ($path) | |
The parser fires this each time one path is going to be parsed. More... | |
debug_info () | |
process_cdata ($cdata) | |
Perform custom transformations in the processed cdata. | |
process_chunk ($data) | |
Get one chunk of parsed data and make it simpler adding attributes as tags and delegating to dispatch_chunk() the procesing of the resulting chunk. | |
receive_chunk ($data) | |
Protected Member Functions | |
add_missing_sub ($grouped, $path, $tags) | |
Add non-existing subarray elements. | |
build_currentdata ($grouped, $data) | |
This function will accumulate the chunk into the specified grouped element for later dispatching once it is complete. | |
dispatch_chunk ($data) | |
Get the already simplified chunk and dispatch it. | |
get_parent_path ($path) | |
Get the parent path using a local cache for performance. More... | |
grouped_child_exists ($path) | |
Function that will look for any grouped child for the given path, returning it if found, false if not. | |
grouped_parent_exists ($path) | |
Function that will look for any grouped parent for the given path, returning it if found, false if not. | |
notify_path_end ($path) | |
Get one selected path and notify about end. | |
notify_path_start ($path) | |
Get one selected path and notify about start. | |
path_is_grouped ($path) | |
path_is_selected ($path) | |
path_is_selected_parent ($path) | |
postprocess_chunk ($data) | |
Override this method so grouping will be happening here also deciding between accumulating/dispatching. | |
process_pending_startend_notifications ($path, $action) | |
Adjust start/end til finding one match start/end path (included) More... | |
selected_parent_exists ($path) | |
Returns the first selected parent if available or false. | |
Protected Attributes | |
$chunks | |
$currentdata | |
array | $groupedparentprefixtree |
Search tree storing the grouped paths. | |
$groupedpaths | |
$inittime | |
array | $parentcache = array() |
Keep cache of parent directory paths for XML parsing. | |
integer | $parentcacheavailablesize = 2048 |
Remaining space for parent directory paths. | |
$parentpaths | |
$parentsinfo | |
$paths | |
$startendinfo | |
Abstract xml parser processor able to group chunks as configured and dispatch them to other arbitrary methods.
This @progressive_parser_processor handles the requested paths, allowing to group information under any of them, dispatching them to the methods specified
Note memory increases as you group more and more paths, so use it for well-known structures being smaller enough (never to group MBs into one in-memory structure)
TODO: Complete phpdocs
grouped_parser_processor::after_path | ( | $path | ) |
The parser fires this each time one path has been parsed.
string | $path | xml path which parsing has ended |
Reimplemented from simplified_parser_processor.
grouped_parser_processor::before_path | ( | $path | ) |
The parser fires this each time one path is going to be parsed.
string | $path | xml path which parsing has started |
Reimplemented from simplified_parser_processor.
|
protected |
Get the parent path using a local cache for performance.
$path | string The pathname you wish to obtain the parent name for. |
string | The parent pathname. |
|
protectedinherited |
Adjust start/end til finding one match start/end path (included)
This will trigger all the pending {
string | path the path to look for as limit |
string | action the action to look for as limit |