6.2. The Teleport Client library

6.2.1. Introduction

TeleportClient is a library that provides client functionality, in particular client-specific networking and object management.

6.2.2. Tab Context

A TabContext is created for each connection. A TabContext is like a tab in a web browser, it can connect to a server, thus initializing a session. A TabContext can only be permanently maintain a single connection, but in transitioning it can have two connections: the existing connection that has already been established, and the new one that should replace it.

flowchart TD
        subgraph "TabContext 1"
                A[Connection A] --> B[Connection B]
        end
        subgraph "TabContext 2"
                C[Connection C]
        end
        subgraph "TabContext 3"
                D[Connection D] --> E[Connection E]
        end

Warning

doxygenclass: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

6.2.3. Session Client

When a connection is made, a SessionClient is created to manage it. The SessionClient has a state that should progress as follows:

flowchart TD
        UNCONNECTED -- "User initiates connection" --> OFFERING
        OFFERING  -- "User initiates connection" --> AWAITING_SETUP
        AWAITING_SETUP --> HANDSHAKING
        HANDSHAKING --> CONNECTED

The SessionClient class is:

Warning

doxygenclass: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

6.2.4. Classes

Warning

doxygenstruct: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

Warning

doxygenclass: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

Warning

doxygenclass: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

Warning

doxygenclass: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

Warning

doxygenclass: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary

Warning

doxygenstruct: breathe_default_project value ‘TeleportXR’ does not seem to be a valid key for the breathe_projects dictionary