Replaced template function to simplify setting online request data with

function (since template doesn't compile on linux without -std=gnu++0x or so).
This commit is contained in:
hiker
2014-03-11 17:13:37 +11:00
parent 642797bdde
commit be9d7292f2
3 changed files with 19 additions and 21 deletions

View File

@@ -63,6 +63,21 @@ namespace Online
delete current_user_singleton;
current_user_singleton = NULL;
} // deallocate
// ------------------------------------------------------------------------
/** Adds the login credential to a http request. A handy static function
* to allow for shorter request creation code. It sets the name of
* the script to invokce, token, and user id.
* \param request The http request.
*/
void CurrentUser::setUserDetails(HTTPRequest *request)
{
CurrentUser *cu = CurrentUser::get();
assert(cu && cu->m_state == US_SIGNED_IN);
assert(cu->m_profile);
request->setServerURL("client-user.php");
request->addParameter("token", cu->m_token);
request->addParameter("userid", cu->m_profile->getID());
} // setUserDetails
// ========================================================================
CurrentUser::CurrentUser()

View File

@@ -168,8 +168,8 @@ namespace Online
/**Singleton */
static CurrentUser * get();
static void deallocate();
template <class C>
static C* createHTMLRequest();
static void setUserDetails(HTTPRequest *html);
void requestSavedSession();
SignInRequest * requestSignIn( const irr::core::stringw &username,
const irr::core::stringw &password,
@@ -225,19 +225,6 @@ namespace Online
}; // class CurrentUser
template <class C>
C* CurrentUser::createHTMLRequest()
{
CurrentUser *cu = CurrentUser::get();
assert(cu->m_state == US_SIGNED_IN);
assert(cu->m_profile);
C *request = new C();
request->setServerURL("client-user.php");
request->addParameter("token", cu->m_token);
request->addParameter("userid", cu->m_profile->getID());
return request;
} // createRequest
} // namespace Online
#endif

View File

@@ -154,10 +154,8 @@ void OnlineProfile::fetchAchievements()
// ------------------------------------------------------------------------
AchievementsRequest * request = new AchievementsRequest();
request->setServerURL("client-user.php");
CurrentUser::setUserDetails(request);
request->addParameter("action", "get-achievements");
request->addParameter("token", CurrentUser::get()->getToken());
request->addParameter("userid", CurrentUser::get()->getID());
request->addParameter("visitingid", m_id);
RequestManager::get()->addRequest(request);
} // fetchAchievements
@@ -209,10 +207,8 @@ void OnlineProfile::fetchFriends()
// ------------------------------------------------------------------------
FriendsListRequest * request = new FriendsListRequest();
request->setServerURL("client-user.php");
CurrentUser::setUserDetails(request);
request->addParameter("action", "get-friends-list");
request->addParameter("token", CurrentUser::get()->getToken());
request->addParameter("userid", CurrentUser::get()->getID());
request->addParameter("visitingid", m_id);
RequestManager::get()->addRequest(request);
} // fetchFriends