SmartFoxServer 2X C++ API
Sfs2X::Requests::ChangeRoomNameRequest Class Reference

Change the name of a Room at runtime. More...

#include <ChangeRoomNameRequest.h>

Inherits Sfs2X::Requests::BaseRequest.

Public Member Functions

 ChangeRoomNameRequest (boost::shared_ptr< Room > room, string newName)
 Constructor More...
 

Detailed Description

Change the name of a Room at runtime.

This request might fail if the Room was configured not be ranamed or if the User sending the request is not the owner of the Room.

Moderators and Administrator can override this last constraint.

Constructor & Destructor Documentation

◆ ChangeRoomNameRequest()

Sfs2X::Requests::ChangeRoomNameRequest::ChangeRoomNameRequest ( boost::shared_ptr< Room >  room,
string  newName 
)

Constructor

Parameters
roomthe Room to rename
newNamethe new Room name (no duplicates are allowed)
ptrSmartFox->AddEventListener(SFSEvent::ROOM_NAME_CHANGE, boost::shared_ptr<EventListenerDelegate> (EventListenerDelegate(CMyClass::OnRoomNameChange, (unsigned long long)this));
ptrSmartFox->AddEventListener(SFSEvent::ROOM_NAME_CHANGE_ERROR, boost::shared_ptr<EventListenerDelegate> (EventListenerDelegate(CMyClass::OnRoomNameChangeError, (unsigned long long)this));
boost::shared_ptr<Room> theRoom = ptrSmartFox->GetRoomByName("Gonzo's Room");
// Change room name
boost::shared_ptr<IRequest> request (new ChangeRoomNameRequest(theRoom, "Gonzo The Great's Room"));
ptrSmartFox->Send(request);
static void OnRoomNameChange(unsigned long long ptrContext, boost::shared_ptr<BaseEvent> ptrEvent);
static void OnRoomNameChangeError(unsigned long long ptrContext, boost::shared_ptr<BaseEvent> ptrEvent);
void CMyClass::OnRoomNameChange(unsigned long long ptrContext, boost::shared_ptr<BaseEvent> ptrEvent);
{
CMyClass* ptrMyClass = (CMyClass*)ptrContext;
// Room was renamed successfully
boost::shared_ptr<map<string, boost::shared_ptr<void>>> ptrEventParams = ptrEvent->Params();
boost::shared_ptr<void> ptrEventParamValueRoom = (*ptrEventParams)["room"];
boost::shared_ptr<Room> ptrNotifiedRoom = ((boost::static_pointer_cast<Room>)(ptrEventParamValueRoom));
boost::shared_ptr<void> ptrEventParamValueOldName = (*ptrEventParams)["oldName"];
boost::shared_ptr<string> ptrOldName = ((boost::static_pointer_cast<string>)(ptrEventParamValueOldName));
}
void CMyClass::OnRoomNameChangeError(unsigned long long ptrContext, boost::shared_ptr<BaseEvent> ptrEvent);
{
CMyClass* ptrMyClass = (CMyClass*)ptrContext;
// Room name change failed
boost::shared_ptr<map<string, boost::shared_ptr<void>>> ptrEventParams = ptrEvent->Params();
boost::shared_ptr<void> ptrEventParamValueErrorMessage = (*ptrEventParams)["errorMessage"];
boost::shared_ptr<string> ptrErrorMessage = ((boost::static_pointer_cast<string>)(ptrEventParamValueErrorMessage));
}
See also
Core.SFSEvent.ROOM_NAME_CHANGE, Core.SFSEvent.ROOM_NAME_CHANGE_ERROR, ChangeRoomCapacityRequest, ChangeRoomPasswordStateRequest