{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460 {\fonttbl\f0\fmodern\fcharset0 Courier;\f1\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1\ql\qnatural\pardirnatural \f0\fs28 \cf0 All interactions with the Ledger library take place in the context of a @var\{Session\}. You may create as many sessions as you like, though typically only one is needed during the lifetime of a script \f1\fs24 \{\\SCRV_FN= \f0\fs28 An example where more might be needed is a GUI program that opens multiple Ledger files in different windows, and creates reports for each file separately \f1\fs24 \\END_SCRV_FN\} \f0\fs28 . Ledger provides a pre-initialized session named @var\{session\}, but others can still be created. Creating a session is trivial, but before it may be used it must be passed in a call to @code\{set_session_context\}. This is how multiple sessions are managed in a multi-threaded environment, where the session itself should be considered non-reentrant.\ \ The first operation after creating a session is typically to load the Ledger data you wish to report on for that session. The loaded data can be reset at any time, and can also be modified.}