Skip to content

PluginRecord

Armin Burgmeier edited this page Aug 23, 2014 · 2 revisions

The record plugin

This plugin writes a record of all text sessions into a specified directory. The record conatins the initial text of the document as soon as the first client subscribes to it, and then records every single keystroke made by users. The record file is in XML format.

This functionality is mostly meant as a debugging aid while developing the libinfinity software itself. If certain user input causes a crash or other misbehaviour, the record can be used to find out exactly what sequence led to the problem, which basically allows to reproduce the problem. However, the functionality can also be useful to see what happened to the document and to be able to go back in history.

At the moment, there is no graphical tool available which is able to play such a record. In libinfinity, there is a class called InfAdoptedSessionReplay which allows to play the record programmatically. Also, in the test directory of libinfinity, there is a small program called inf-test-text-replay, which replays a record until the end and then prints the document text to stdout. This can be used to recover unsaved data from a server crash, since the record is written to disk on every keystroke. In such a case it might be required to add a final </infinote-adopted-session-record> tag at the end of the file which the server did not get to write anymore before the crash, to make it valid XML.

Plugin options

This plugin does not have any configurable options. The directory into which to write the records should be made configurable. At the moment it is hardcoded to $HOME/.infinoted-records.

Other Plugins

Back to the list of infinoted plugins.