connect($RSMHost, $RSMPort, $res); if ($res != "") { echo "Error connecting to session manager
"; echo 'Return to start menu'; die(); } // send the create session message $rsm->scheduleSession( $charId, $sessionType, $title, 0, $desc, "sl_a", "at_public", "rt_liberal", "et_short", 0 // 0 inscription slots for edit session ); $rsm->waitCallback(); // the rest of the work is done in the callback } $SessionId = 0; $DomainId = 0; $SessionToolsResult = false; class ScheduleSessionCb extends CRingSessionManagerWeb { function scheduleSessionResult($charId, $sessionId, $result, $resultString) { global $SessionId, $DomainId, $SessionToolsResult; $SessionId = $sessionId; // $DomainId = $domainId; echo "Create session result :
"; if ($result == 0) { $SessionToolsResult = true; echo "Session $sessionId created for char $charId
"; echo "

Your session has been planned, thank you


"; } else { $SessionToolsResult = false; echo "Failed to create a session for char $charId with error $resultString
"; } } } $rsmProxy = false; $callbackClient = false; $rsmSkel = false; function startSession($charId, $domainId, $sessionId) { global $SessionId, $DomainId, $SessionToolsResult; $domainInfo = getDomainInfo($domainId); $addr = split(":", $domainInfo["session_manager_address"]); $RSMHost = $addr[0]; $RSMPort = $addr[1]; $SessionId = $sessionId; $DomainId = $domainId; // ask to start the session global $rsmProxy, $callbackClient, $rsmSkel; $startSession = new StartSessionCb; $res = ""; $startSession->connect($RSMHost, $RSMPort, $res); echo "Starting session for character ".$charId." in session ".$sessionId."
"; global $SessionId; $SessionId = $sessionId; $startSession->startSession($charId, $sessionId); // wait the the return message $startSession->waitCallback() or die("No reponse from session manager"); } function inviteOwnerInSession($charId, $domainId, $sessionId) { global $SessionId, $DomainId, $SessionToolsResult; // first, set the result to false $SessionToolsResult = false; $domainInfo = getDomainInfo($domainId); $addr = split(":", $domainInfo["session_manager_address"]); $RSMHost = $addr[0]; $RSMPort = $addr[1]; global $rsmProxy, $rsmSkel, $userId, $charId, $callbackClient, /*$SessionId,*/ $SessionToolsResult; global $DBHost, $DBPort, $RingDBUserName, $RingDBPassword; $SessionId = $sessionId; $DomainId = $domainId; $link = mysqli_connect($DBHost, $RingDBUserName, $RingDBPassword, NULL, $DBPort) or die("Can't connect to ring database"); mysqli_select_db($link, $domainInfo['ring_db_name']) or die ("Can't access to the db dbname:" . $domainInfo['ring_db_name']); $sessionId = (int) $sessionId; $query = "select session_type from sessions where session_id=".$sessionId; $result = mysqli_query($link, $query) or die ("Can't execute the query: ".$query); if (mysqli_num_rows($result) != 1) { echo "Can't find 1 row for ring session ".$sessionId."
"; die(); } $row = mysqli_fetch_row($result); $session_type = $row[0]; $mode = ($session_type == "st_edit") ? "sps_edit_invited" : "sps_anim_invited"; echo "Inviting character ".$charId." of user ".$userId." in session ".$sessionId."
"; $inviteOwner = new InviteOwnerCb; $res = ""; $inviteOwner->connect($RSMHost, $RSMPort, $res); $inviteOwner->inviteCharacter($charId, $sessionId, $charId, $mode); // wait the the return message if ($inviteOwner->waitCallback() == false) { echo "No response from server, invite failed
"; die(); } } class StartSessionCb extends CRingSessionManagerWeb { function invokeResult($userId, $resultCode, $resultString) { global $rsmProxy, $rsmSkel, $userId, $charId, $callbackClient, $SessionId, $DomainId, $SessionToolsResult; if ($resultCode != 0) { $SessionToolsResult = false; echo "

Error ".$resultCode." : '".$resultString."' while trying to start the session ".$SessionId."

"; echo '

Back to menu'; } else { // ok, the session is started, invite the session owner in the session $SessionToolsResult = false; echo "Start of session $SessionId success, now inviting character $charId in the sesison
"; inviteOwnerInSession($charId, $DomainId, $SessionId); } } } class InviteOwnerCb extends CRingSessionManagerWeb { function invokeResult($userId, $resultCode, $resultString) { global $rsmProxy, $rsmSkel, $userId, $charId, $callbackClient, $SessionId, $DomainId, $SessionToolsResult; // jump back to main page echo "

The session ".$SessionId." have been started

"; if ($resultCode == 0) { $SessionToolsResult = true; echo "

You are automaticaly invited in the session

"; } else { $SessionToolsResult = false; echo "

Failed to invite you in the started session !

"; echo "

Error ".$resultCode." : '".$resultString."' while trying to join the session ".$SessionId."

"; } echo '

Back to menu'; } }