# SoftBank Robotics documentation What's new in NAOqi 2.8?

# ALUserSession - API

NAOqi Core - Overview | API | Getting Started

Namespace : AL

## Method list

This (link needed) Service has the following methods:

class `ALUserSession`

- `ALUserSession::doesUserExist`
- `ALUserSession::doUsersExist`
- `ALUserSession::getUserList`
- `ALUserSession::getNumUsers`
- `ALUserSession::getFocusedUser`
- `ALUserSession::getOpenUserSessions`
- `ALUserSession::isUserSessionOpen`
- `ALUserSession::areUserSessionsOpen`
- `ALUserSession::isUserPermanent`
- `ALUserSession::areUsersPermanent`
- `ALUserSession::getPermanentUserList`
- `ALUserSession::getUsidFromPpid`
- `ALUserSession::getPpidFromUsid`
- `ALUserSession::getBindingList`
- `ALUserSession::doesBindingExist`
- `ALUserSession::getUserBindings`
- `ALUserSession::getUserBinding`
- `ALUserSession::findUsersWithBinding`
- `ALUserSession::getUserCreationDate`
- `ALUserSession::getFirstEncounterDate`
- `ALUserSession::getCurrentEncounterDate`
- `ALUserSession::getLastEncounterDate`
- `ALUserSession::getSecondsSinceLastEncounter`

Deprecated Methods

- `ALUserSession::getBindingSources` (deprecated)
- `ALUserSession::doesBindingSourceExist` (deprecated)
- `ALUserSession::doesUserDataSourceExist` (deprecated)
- `ALUserSession::getUserDataSources` (deprecated)
- `ALUserSession::getUserData` (deprecated)

## Signal list

- `ALUserSession::createdUsers`
- `ALUserSession::deletedUsers`
- `ALUserSession::openedSessions`
- `ALUserSession::closedSessions`
- `ALUserSession::focusedUser`
- `ALUserSession::noOpenSession`
- `ALUserSession::noOpenSession`
- `ALUserSession::addedPermanentUsers`
- `ALUserSession::removedPermanentUsers`

## Event list

- `UserSession/ShouldExitInteractiveActivity()`
- `UserSession/CreatedUsers()` (deprecated use signals instead)
- `UserSession/DeletedUsers()` (deprecated use signals instead)
- `UserSession/SessionsOpened()` (deprecated use signals instead)
- `UserSession/SessionsClosed()` (deprecated use signals instead)
- `UserSession/NoOpenSessions()` (deprecated use signals instead)
- `UserSession/FocusedUser()` (deprecated use signals instead)

## ALMemory Keys list

- `UserSession/OpenSessions` (deprecated)

## Methods

bool `ALUserSession::``doesUserExist`(int userID)`const`

  Checks if UserSession ID exist in database.

  Parameters: | userID – the UserSession ID to check.
  Returns: | True if the user exists, False otherwise.

bool `ALUserSession::``doUsersExist`(const std::list<int> userIDs)`const`

  Checks if UserSession IDs exist in database.

  Parameters: | userIDs – the UserSession IDs to check.
  Returns: | True if all users exist, False otherwise.

std::list<int> `ALUserSession::``getUserList`()`const`

  Gets all UserSession IDs in the database.

  Returns: | a list of the integer UserSession IDs.

int `ALUserSession::``getNumUsers`()`const`

  Gets the number of users in the database.

  Returns: | the number of users.

int `ALUserSession::``getFocusedUser`()`const`

  Gets which user has the robot focus.

  Returns: | The UserSession ID of the focused user if there is one, -1 otherwise.

std::list<int> `ALUserSession::``getOpenUserSessions`()`const`

  Gets which users have an open session.

  Returns: | the UserSession IDs of the users with an open session.

bool `ALUserSession::``isUserSessionOpen`(int userID)`const`

  Checks if a given UserSession ID has an open session.

  Parameters: | userID – UserSession ID of the user to check.
  Returns: | True if the user has an open session, False otherwise.

bool `ALUserSession::``areUserSessionsOpen`(const std::list<int> userIDs)`const`

  Checks if UserSession IDs have an open session.

  Parameters: | userIDs – A list of int UserSession IDs of each user to check.
  Returns: | True if all users have open sessions, False otherwise.

int `ALUserSession::``getUsidFromPpid`(int ppID)`const`

  Gets the UserSession ID of a given PeoplePeople ID.

  Parameters: | ppID – PeoplePerception ID of the person to check.
  Returns: | the UserSession ID of the corresponding user if it exists, -1 otherwise.

int `ALUserSession::``getPpidFromUsid`(int userID)`const`

  Gets the PeoplePerception ID of a given UserSession ID.

  Parameters: | userID – UserSession ID of the user to check.
  Returns: | the PeoplePerception ID of the given user if it exists, -1 otherwise.

std::list<std::string> `ALUserSession::``getBindingList`()`const`

  Gets the list of bindings that have been applied to UserSession.

  Returns: | the names of the bindings.

bool `ALUserSession::``doesBindingExist`(const std::string bindingName)`const`

  Queries if a particular binding has been applied to UserSession.

  Parameters: | bindingName – name of the binding.
  Returns: | True if a binding exists, False otherwise.

bool `ALUserSession::``isUserPermanent`(int userID)`const`

  Checks if a given UserSession ID is permanent.

  Parameters: | userID – UserSession IDs of the user to check.
  Returns: | True if the user is permanent, False otherwise.

bool `ALUserSession::``areUsersPermanent`(const std::list<int> userIDs)`const`

  Checks if UserSession IDs are permanent.

  Parameters: | userIDs – A list of int UserSession IDs of each user to check.
  Returns: | True if all the users are permanent, False otherwise.

std::vector<int> `ALUserSession::``getPermanentUserList`()`const`

  Gets the list of permanent UserSession IDs.

  Returns: | List of permanent UserSession IDs.

std::map<std::string, std::string> `ALUserSession::``getUserBindings`(const int userID)`const`

  Gets the sources a UserSession ID is bound to.

  Parameters: | userID – UserSession ID of the user.
  Returns: | A map of binding sources names and their bound ID.

std::string `ALUserSession::``getUserBinding`(const int userID, const std::string bindingName)`const`

  Gets the specific source a UserSession ID is bound to.

  Parameters: | userID – UserSession ID of the user. bindingName – The name of the binding source.
  Returns: | Bound ID for the specified user ID and binding source.

std::list<int> `ALUserSession::``findUsersWithBinding`(const std::string bindingName, const std::string bindingValue)`const`

  Gets the sources a User Session ID is bound to.

  Parameters: | bindingName – The name of the binding source. bindingValue – The string bound ID of the user at the binding source.
  Returns: | The int UserSession IDs of the users with the passed bindingValue.

std::string `ALUserSession::``getUserCreationDate`(const int userID)`const`

  Gets the date of the creation of a given UserSession ID.

  Parameters: | userID – UserSession ID of the user.
  Returns: | The date of the creation of the user. The format of the date is from posix_time:ptime (day+time) turned into a simple string.

std::string `ALUserSession::``getFirstEncounterDate`(const int userID)`const`

  Gets the date of the first encounter of a given UserSession ID with the robot.

  Parameters: | userID – UserSession ID of the user.
  Returns: | The date of the first encounter of the user with the robot. The format of the date is from posix_time:ptime (day+time) turned into a simple string. This date is an empty string if the user has never encountered the robot.

std::string `ALUserSession::``getCurrentEncounterDate`(const int userID)`const`

  Gets the date of the current encounter of a given UserSession ID with the robot.

  Parameters: | userID – UserSession ID of the user.
  Returns: | The date of the current encounter of the user with the robot. The format of the date is from posix_time:ptime (day+time) turned into a simple string. This date is an empty string if the user does not have an open session.

std::string `ALUserSession::``getLastEncounterDate`(const int userID)`const`

  Gets the date of the last encounter of a given UserSession ID with the robot.

  Parameters: | userID – UserSession ID of the user.
  Returns: | The date of the last encounter of the user with the robot. It corresponds to date of the last closed session of the user. The format of the date is from posix_time:ptime (day+time) turned into a simple string. This date is an empty string if the user has never encountered the robot.

int `ALUserSession::``getSecondsSinceLastEncounter`(const int userID)`const`

  Gets the number seconds since the last encounter of a given UserSession ID with the robot.

  Parameters: | userID – UserSession ID of the user.
  Returns: | The number of seconds since the last encounter of the user with the robot. It corresponds to the number of seconds since the last closed session of the user. If the user has never encountered the robot, it returns -1. If it is the first time the user encounters the robots, it returns 0.

std::list<std::string> `ALUserSession::``getBindingSources`()`const`

  Deprecated since version 2.2: Please use `ALUserSession::getBindingList` instead.

bool `ALUserSession::``doesBindingSourceExist`(const std::string bindingName)`const`

  Deprecated since version 2.2: Please use `ALUserSession::doesBindingExist` instead.

bool `ALUserSession::``doesUserDataSourceExist`(const std::string sourceName)`const`

  Deprecated since version 2.2: User data source mechanism has been removed.

std::list<std::string> `ALUserSession::``getUserDataSources`()`const`

  Deprecated since version 2.2: User data source mechanism has been removed.

AL::ALValue `ALUserSession::``getUserData`(const int userID, const std::string dataName, const std::string sourceName)

  Deprecated since version 2.2: Please use ALUserInfo API instead.

std::map<std::string, AL::ALValue> `ALUserSession::``getUserData`(const int userID, const std::string dataName)

  Deprecated since version 2.2: Please use ALUserInfo API instead.

## Signals

qi::Signal<std::vector<int>> `ALUserSession::``createdUsers`

  Sent when new users are created in the UserSession database.

  - std::vector<int> IDs: a vector with the UserSession IDs of all the created users.

qi::Signal<std::vector<int>> `ALUserSession::``deletedUsers`

  Sent when users are deleted in the UserSession database.

  - std::vector<int> IDs: a vector with the UserSession IDs of all the deleted users.

qi::Signal<std::vector<int>> `ALUserSession::``openedSessions`

  Sent when sessions are opened for users.

  - std::vector<int> IDs: a vector with the UserSession IDs of the users whose session have been opened.

qi::Signal<std::vector<int>> `ALUserSession::``closedSessions`

  Sent when sessions are closed for users.

  - std::vector<int> IDs: a vector with the UserSession IDs of the users whose session have been closed.

qi::Signal<int> `ALUserSession::``focusedUser`

  Sent when a user is focused.

  - int ID: UserSession ID of the focused user, -1 if no user is focused anymore.

qi::Signal<bool> `ALUserSession::``noOpenSession`

  Sent when there are no open sessions and when it is not the case anymore.

  - bool state: True if there are no open sessions, False if it is not the case anymore.

qi::Signal<std::vector<int>> `ALUserSession::``addedPermanentUsers`

  Sent when permanent users are added.

  - std::vector<int> IDs: a vector with the UserSession IDs of the added permanent users.

qi::Signal<std::vector<int>> `ALUserSession::``removedPermanentUsers`

  Sent when permanent users are removed.

  - std::vector<int> IDs: a vector with the UserSession IDs of the removed permanent users.

## Events

Event: `"UserSession/ShouldExitInteractiveActivity"`
callback(std::string eventName, bool shouldExit, std::string subscriberIdentifier)

  Parameters: | eventName (std::string) – “UserSession/ShouldExitInteractiveActivity” shouldExit – Always raised as true. The only meaning is in the timing of the event its self. subscriberIdentifier (std::string) –

  This event is raised when ALAutonomousLife thinks that there is nobody to interact with, and recommends that the current Interactive Activity exits.

Event: `"UserSession/CreatedUsers"`
callback(std::string eventName, AL::ALValue userSessionIDs, std::string subscriberIdentifier)

  Deprecated since version 2.3: Please use signal `ALUserSession::createdUsers` instead.

  Parameters: | eventName (std::string) – “UserSession/CreatedUsers” userSessionIDs – A list of the UserSession IDs of all the created user sessions. subscriberIdentifier (std::string) –

  This event is raised when Users are created in the UserSession database. This could be raised if Autonomous Life thinks the robot just met someone it hasn’t seen before.

Event: `"UserSession/DeletedUsers"`
callback(std::string eventName, AL::ALValue userSessionIDs, std::string subscriberIdentifier)

  Deprecated since version 2.3: Please use signal `ALUserSession::deletedUsers` instead.

  Parameters: | eventName (std::string) – “UserSession/DeletedUsers” userSessionIDs – A list of the UserSession IDs of all the deleted user sessions. subscriberIdentifier (std::string) –

  This event is raised when Users are deleted from the UserSession database. This could be raised if Autonomous Life is pruning users.

Event: `"UserSession/SessionsOpened"`
callback(std::string eventName, AL::ALValue userSessionIDs, std::string subscriberIdentifier)

  Deprecated since version 2.3: Please use signal `ALUserSession::openedSessions` instead.

  Parameters: | eventName (std::string) – “UserSession/SessionsOpened” userSessionIDs – A list of the UserSession IDs of all newly opened user sessions. subscriberIdentifier (std::string) –

  This event is raised when user sessions are opened. It is possible to open multiple sessions simultaneously.

  Sessions are opened when a UserSession ID is tracked by Basic Awareness.

Event: `"UserSession/SessionsClosed"`
callback(std::string eventName, AL::ALValue userSessionIDs, std::string subscriberIdentifier)

  Deprecated since version 2.3: Please use signal `ALUserSession::closedSessions` instead.

  Parameters: | eventName (std::string) – “UserSession/SessionsClosed” userSessionIDs – A list of the UserSession IDs of all newly closed user sessions. subscriberIdentifier (std::string) –

  This event is raised when user sessions are closed. It is possible to close multiple sessions simultaneously.

  A session is closed when the corresponding person is no longer perceived by people perception.

Event: `"UserSession/NoOpenSessions"`
callback(std::string eventName, std::string subscriberIdentifier)

  Deprecated since version 2.3: Please use signal `ALUserSession::noOpenSession` instead.

  Parameters: | eventName (std::string) – “UserSession/NoOpenSessions” open – True when no user sessions are open, false if any user sessions are open. subscriberIdentifier (std::string) –

  This event is raised when the number of open user sessions transitions from zero to any or any to zero.

Event: `"UserSession/FocusedUser"`
callback(std::string eventName, int userID, std::string subscriberIdentifier)

  Deprecated since version 2.3: Please use signal `ALUserSession::focusedUser` instead.

  Parameters: | eventName (std::string) – “UserSession/FocusedUser” userSessionID – UserSession ID of the focused user, or -1 if no user is focused. subscriberIdentifier (std::string) –

  This event is raised when the focused user changes.

## ALMemory Keys

AL::ALValue `UserSession/OpenSessions`

  Deprecated since version 2.3: Please use method `ALUserSession::getOpenUserSessions` instead.

  A list of the UserSession IDs of all currently open user sessions.

Glossary Site map Index Support Contact Legal Notices