Library
Fieldpine Internals
Replication
Gds Security
Fpos.dll Startup logic
PosGreen Network
PosGreen Install Process
Multicast Protocol
Data Structures
Settings
Logic Trace
Contexts and Sessions
A context is a structure that holds all the informaton and active state for a current user. A session is an individual user working with a context. A context can have multiple sessions if several users/devices are operating on the same sale at once.
OS (Windows/Linux) Process
Sale #123 | Root Context | Root Session | Logged in Windows user |
Session #2 | External Browser user | ||
Sale #456 | Context #2 | Session #3 | Tablet/Mobile user |
Sale #nnn | Context #N | Session #M |
- Sales can only be active within one context
- A context can have multiple sessions and they all work cooperatively on the same sales. Not commonly used for normal selling, typically used more for remote monitoring, customer displays or support
- Contexts and sessions are not actually numbered as shown above, they use more UUID type identifiers.
- SessionIds are allocated by Fieldpine servers. Clients may request a friendly session name 'Lane 2' which if approved will have the server return the actual internal sessionid. (Ref /LGIN f604)
- If sites run PosGreen.exe (Windows) that always starts and reuses the root context and session. External browser users (identified with a source IP different to the current machine) can select an existing context or create a new one. They will always create a session block to hold state and details about them
- Sesions can be tied to a single sale when called from external browsers. This is used in the special case where a customer might be granted access to a sale directly while it is still being created.
- (Not visible) There is an exception in the source code where multiple keyboards on a PC can create different contexts. This permits multiple screen/keyboard use on a single PC operating on independant sales. This is not exposed for use as currently on Windows it isn't possible to distingish reliably between two pointing mice or touch screens. Designers might like to keep in mind that in the future multiple "root" sessions are possible, which will be named "root2" etc
- (Source Code) Contexts are called UIScreenContextRoot. The class UIScreenContext is a per screen/window structure used to seperate stacked Windows and is not explained on this page. Sessions are maintained in UIContextSession and HttpSession2 classes