ORE Studio 0.0.4
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
session_converter Class Referencefinal

Converts between comms::service::session_data and iam::domain::session. More...

#include <session_converter.hpp>

Collaboration diagram for session_converter:
Collaboration graph

Static Public Member Functions

static std::shared_ptr< comms::service::session_datato_session_data (const domain::session &s)
 Convert from iam domain session to comms session_data.
 
static domain::session from_session_data (const comms::service::session_data &d)
 Convert from comms session_data to iam domain session.
 
static void update_from_session_data (domain::session &s, const comms::service::session_data &d)
 Update a domain session from session_data.
 

Detailed Description

Converts between comms::service::session_data and iam::domain::session.

This converter exists to support the dependency inversion between ores.comms and ores.iam. The protocol-level session data lives in ores.comms, while the domain model and persistence layer remain in ores.iam.

Flow:

  1. On login, ores.iam creates a domain::session
  2. Converts to session_data and stores in auth_session_service
  3. On logout, retrieves session_data and converts back to domain::session for persistence updates

Member Function Documentation

◆ to_session_data()

std::shared_ptr< comms::service::session_data > to_session_data ( const domain::session s)
static

Convert from iam domain session to comms session_data.

Used when storing a newly created session in auth_session_service.

◆ from_session_data()

domain::session from_session_data ( const comms::service::session_data d)
static

Convert from comms session_data to iam domain session.

Used when retrieving session data for persistence operations.

◆ update_from_session_data()

void update_from_session_data ( domain::session s,
const comms::service::session_data d 
)
static

Update a domain session from session_data.

Used when updating byte counters or end_time from the comms layer.