Call OnResponseReady with an identifier for the request, add a WebRequest class
This commit is contained in:
parent
39acce4502
commit
3edee42971
@ -45,6 +45,7 @@
|
|||||||
#include "gui/preview/Comment.h"
|
#include "gui/preview/Comment.h"
|
||||||
#include "ClientListener.h"
|
#include "ClientListener.h"
|
||||||
#include "requestbroker/RequestBroker.h"
|
#include "requestbroker/RequestBroker.h"
|
||||||
|
#include "requestbroker/WebRequest.h"
|
||||||
#include "requestbroker/APIRequest.h"
|
#include "requestbroker/APIRequest.h"
|
||||||
#include "requestbroker/APIResultParser.h"
|
#include "requestbroker/APIResultParser.h"
|
||||||
|
|
||||||
@ -1196,6 +1197,17 @@ std::vector<unsigned char> Client::GetSaveData(int saveID, int saveDate)
|
|||||||
return saveData;
|
return saveData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RequestBroker::Request * Client::GetSaveDataAsync(int saveID, int saveDate)
|
||||||
|
{
|
||||||
|
std::stringstream urlStream;
|
||||||
|
if(saveDate){
|
||||||
|
urlStream << "http://" << STATICSERVER << "/" << saveID << "_" << saveDate << ".cps";
|
||||||
|
} else {
|
||||||
|
urlStream << "http://" << STATICSERVER << "/" << saveID << ".cps";
|
||||||
|
}
|
||||||
|
return new WebRequest(urlStream.str());
|
||||||
|
}
|
||||||
|
|
||||||
RequestBroker::Request * Client::SaveUserInfoAsync(UserInfo info)
|
RequestBroker::Request * Client::SaveUserInfoAsync(UserInfo info)
|
||||||
{
|
{
|
||||||
class StatusParser: public APIResultParser
|
class StatusParser: public APIResultParser
|
||||||
|
@ -136,8 +136,10 @@ public:
|
|||||||
RequestBroker::Request * GetUserInfoAsync(std::string username);
|
RequestBroker::Request * GetUserInfoAsync(std::string username);
|
||||||
RequestBroker::Request * SaveUserInfoAsync(UserInfo info);
|
RequestBroker::Request * SaveUserInfoAsync(UserInfo info);
|
||||||
|
|
||||||
|
RequestBroker::Request * GetSaveDataAsync(int saveID, int saveDate);
|
||||||
unsigned char * GetSaveData(int saveID, int saveDate, int & dataLength);
|
unsigned char * GetSaveData(int saveID, int saveDate, int & dataLength);
|
||||||
std::vector<unsigned char> GetSaveData(int saveID, int saveDate);
|
std::vector<unsigned char> GetSaveData(int saveID, int saveDate);
|
||||||
|
|
||||||
LoginStatus Login(std::string username, std::string password, User & user);
|
LoginStatus Login(std::string username, std::string password, User & user);
|
||||||
void ClearThumbnailRequests();
|
void ClearThumbnailRequests();
|
||||||
std::vector<SaveInfo*> * SearchSaves(int start, int count, std::string query, std::string sort, std::string category, int & resultCount);
|
std::vector<SaveInfo*> * SearchSaves(int start, int count, std::string query, std::string sort, std::string category, int & resultCount);
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
#include "client/HTTP.h"
|
#include "client/HTTP.h"
|
||||||
#include "APIResultParser.h"
|
#include "APIResultParser.h"
|
||||||
|
|
||||||
APIRequest::APIRequest(std::string url, APIResultParser * parser, ListenerHandle listener):
|
APIRequest::APIRequest(std::string url, APIResultParser * parser, ListenerHandle listener, int identifier):
|
||||||
RequestBroker::Request(API, listener)
|
RequestBroker::Request(API, listener, identifier)
|
||||||
{
|
{
|
||||||
Post = false;
|
Post = false;
|
||||||
HTTPContext = NULL;
|
HTTPContext = NULL;
|
||||||
@ -18,8 +18,8 @@ APIRequest::APIRequest(std::string url, APIResultParser * parser, ListenerHandle
|
|||||||
URL = url;
|
URL = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
APIRequest::APIRequest(std::string url, std::map<std::string, std::string> postData, APIResultParser * parser, ListenerHandle listener):
|
APIRequest::APIRequest(std::string url, std::map<std::string, std::string> postData, APIResultParser * parser, ListenerHandle listener, int identifier):
|
||||||
RequestBroker::Request(API, listener)
|
RequestBroker::Request(API, listener, identifier)
|
||||||
{
|
{
|
||||||
Post = true;
|
Post = true;
|
||||||
PostData = postData;
|
PostData = postData;
|
||||||
|
@ -10,8 +10,8 @@ public:
|
|||||||
std::string URL;
|
std::string URL;
|
||||||
std::map<std::string, std::string> PostData;
|
std::map<std::string, std::string> PostData;
|
||||||
void * HTTPContext;
|
void * HTTPContext;
|
||||||
APIRequest(std::string url, APIResultParser * parser, ListenerHandle listener = ListenerHandle(0, (RequestListener*)0));
|
APIRequest(std::string url, APIResultParser * parser, ListenerHandle listener = ListenerHandle(0, (RequestListener*)0), int identifier = 0);
|
||||||
APIRequest(std::string url, std::map<std::string, std::string>, APIResultParser * parser, ListenerHandle listener = ListenerHandle(0, (RequestListener*)0));
|
APIRequest(std::string url, std::map<std::string, std::string>, APIResultParser * parser, ListenerHandle listener = ListenerHandle(0, (RequestListener*)0), int identifier = 0);
|
||||||
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
||||||
virtual ~APIRequest();
|
virtual ~APIRequest();
|
||||||
virtual void Cleanup();
|
virtual void Cleanup();
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
#include "graphics/Graphics.h"
|
#include "graphics/Graphics.h"
|
||||||
#include "client/HTTP.h"
|
#include "client/HTTP.h"
|
||||||
|
|
||||||
ImageRequest::ImageRequest(std::string url, int width, int height, ListenerHandle listener):
|
ImageRequest::ImageRequest(std::string url, int width, int height, ListenerHandle listener, int identifier):
|
||||||
Request(Image, listener)
|
Request(Image, listener, identifier)
|
||||||
{
|
{
|
||||||
URL = url;
|
URL = url;
|
||||||
HTTPContext = NULL;
|
HTTPContext = NULL;
|
||||||
|
@ -7,7 +7,7 @@ public:
|
|||||||
std::string URL;
|
std::string URL;
|
||||||
int RequestTime;
|
int RequestTime;
|
||||||
void * HTTPContext;
|
void * HTTPContext;
|
||||||
ImageRequest(std::string url, int width, int height, ListenerHandle listener);
|
ImageRequest(std::string url, int width, int height, ListenerHandle listener, int identifier = 0);
|
||||||
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
||||||
virtual ~ImageRequest();
|
virtual ~ImageRequest();
|
||||||
virtual void Cleanup();
|
virtual void Cleanup();
|
||||||
|
@ -114,7 +114,7 @@ void RequestBroker::RetrieveAvatar(std::string username, int width, int height,
|
|||||||
RetrieveImage(urlStream.str(), width, height, tListener);
|
RetrieveImage(urlStream.str(), width, height, tListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RequestBroker::Start(Request * request, RequestListener * tListener)
|
void RequestBroker::Start(Request * request, RequestListener * tListener, int identifier)
|
||||||
{
|
{
|
||||||
ListenerHandle handle = AttachRequestListener(tListener);
|
ListenerHandle handle = AttachRequestListener(tListener);
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ void RequestBroker::FlushThumbQueue()
|
|||||||
{
|
{
|
||||||
if(CheckRequestListener(completeQueue.front()->Listener))
|
if(CheckRequestListener(completeQueue.front()->Listener))
|
||||||
{
|
{
|
||||||
completeQueue.front()->Listener.second->OnResponseReady(completeQueue.front()->ResultObject);
|
completeQueue.front()->Listener.second->OnResponseReady(completeQueue.front()->ResultObject, completeQueue.front()->Identifier);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -288,11 +288,12 @@ void RequestBroker::DetachRequestListener(RequestListener * tListener)
|
|||||||
pthread_mutex_unlock(&listenersMutex);
|
pthread_mutex_unlock(&listenersMutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
RequestBroker::Request::Request(RequestType type, ListenerHandle listener)
|
RequestBroker::Request::Request(RequestType type, ListenerHandle listener, int identifier)
|
||||||
{
|
{
|
||||||
Type = type;
|
Type = type;
|
||||||
Listener = listener;
|
Listener = listener;
|
||||||
ResultObject = NULL;
|
ResultObject = NULL;
|
||||||
|
Identifier = identifier;
|
||||||
}
|
}
|
||||||
RequestBroker::Request::~Request()
|
RequestBroker::Request::~Request()
|
||||||
{
|
{
|
||||||
|
@ -17,6 +17,7 @@ class RequestBroker: public Singleton<RequestBroker>
|
|||||||
{
|
{
|
||||||
friend class ImageRequest;
|
friend class ImageRequest;
|
||||||
friend class APIRequest;
|
friend class APIRequest;
|
||||||
|
friend class WebRequest;
|
||||||
friend class ThumbRenderRequest;
|
friend class ThumbRenderRequest;
|
||||||
public:
|
public:
|
||||||
class Request;
|
class Request;
|
||||||
@ -56,7 +57,7 @@ public:
|
|||||||
void RetrieveThumbnail(int saveID, int saveDate, int width, int height, RequestListener * tListener);
|
void RetrieveThumbnail(int saveID, int saveDate, int width, int height, RequestListener * tListener);
|
||||||
void RetrieveThumbnail(int saveID, int width, int height, RequestListener * tListener);
|
void RetrieveThumbnail(int saveID, int width, int height, RequestListener * tListener);
|
||||||
void RetrieveAvatar(std::string username, int width, int height, RequestListener * tListener);
|
void RetrieveAvatar(std::string username, int width, int height, RequestListener * tListener);
|
||||||
void Start(Request * request, RequestListener * tLIstener);
|
void Start(Request * request, RequestListener * tLIstener, int identifier = 0);
|
||||||
|
|
||||||
bool CheckRequestListener(ListenerHandle handle);
|
bool CheckRequestListener(ListenerHandle handle);
|
||||||
ListenerHandle AttachRequestListener(RequestListener * tListener);
|
ListenerHandle AttachRequestListener(RequestListener * tListener);
|
||||||
@ -65,12 +66,13 @@ public:
|
|||||||
class Request
|
class Request
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum RequestType { ThumbnailRender, Image, API };
|
enum RequestType { ThumbnailRender, Image, API, Web };
|
||||||
|
int Identifier;
|
||||||
RequestType Type;
|
RequestType Type;
|
||||||
void * ResultObject;
|
void * ResultObject;
|
||||||
ListenerHandle Listener;
|
ListenerHandle Listener;
|
||||||
std::vector<Request*> Children;
|
std::vector<Request*> Children;
|
||||||
Request(RequestType type, ListenerHandle listener);
|
Request(RequestType type, ListenerHandle listener, int identifier);
|
||||||
virtual ProcessResponse Process(RequestBroker & rb) { return Failed; }
|
virtual ProcessResponse Process(RequestBroker & rb) { return Failed; }
|
||||||
virtual ~Request();
|
virtual ~Request();
|
||||||
virtual void Cleanup();
|
virtual void Cleanup();
|
||||||
|
@ -7,5 +7,5 @@ public:
|
|||||||
RequestListener() { ListenerRand = rand(); }
|
RequestListener() { ListenerRand = rand(); }
|
||||||
virtual ~RequestListener() {}
|
virtual ~RequestListener() {}
|
||||||
|
|
||||||
virtual void OnResponseReady(void * response) {}
|
virtual void OnResponseReady(void * response, int identifier) {}
|
||||||
};
|
};
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
#include "graphics/Graphics.h"
|
#include "graphics/Graphics.h"
|
||||||
#include "simulation/SaveRenderer.h"
|
#include "simulation/SaveRenderer.h"
|
||||||
|
|
||||||
ThumbRenderRequest::ThumbRenderRequest(GameSave * save, bool decorations, bool fire, int width, int height, ListenerHandle listener):
|
ThumbRenderRequest::ThumbRenderRequest(GameSave * save, bool decorations, bool fire, int width, int height, ListenerHandle listener, int identifier):
|
||||||
RequestBroker::Request(ThumbnailRender, listener)
|
RequestBroker::Request(ThumbnailRender, listener, identifier)
|
||||||
{
|
{
|
||||||
Save = save;
|
Save = save;
|
||||||
Width = width;
|
Width = width;
|
||||||
|
@ -8,7 +8,7 @@ public:
|
|||||||
bool Decorations;
|
bool Decorations;
|
||||||
bool Fire;
|
bool Fire;
|
||||||
GameSave * Save;
|
GameSave * Save;
|
||||||
ThumbRenderRequest(GameSave * save, bool decorations, bool fire, int width, int height, ListenerHandle listener);
|
ThumbRenderRequest(GameSave * save, bool decorations, bool fire, int width, int height, ListenerHandle listener, int identifier = 0);
|
||||||
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
||||||
virtual ~ThumbRenderRequest();
|
virtual ~ThumbRenderRequest();
|
||||||
virtual void Cleanup();
|
virtual void Cleanup();
|
||||||
|
134
src/client/requestbroker/WebRequest.cpp
Normal file
134
src/client/requestbroker/WebRequest.cpp
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <typeinfo>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include "Config.h"
|
||||||
|
#include "Format.h"
|
||||||
|
#include "client/Client.h"
|
||||||
|
#include "WebRequest.h"
|
||||||
|
#include "client/HTTP.h"
|
||||||
|
#include "APIResultParser.h"
|
||||||
|
|
||||||
|
WebRequest::WebRequest(std::string url, ListenerHandle listener, int identifier):
|
||||||
|
RequestBroker::Request(API, listener, identifier)
|
||||||
|
{
|
||||||
|
Post = false;
|
||||||
|
HTTPContext = NULL;
|
||||||
|
URL = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
WebRequest::WebRequest(std::string url, std::map<std::string, std::string> postData, ListenerHandle listener, int identifier):
|
||||||
|
RequestBroker::Request(API, listener, identifier)
|
||||||
|
{
|
||||||
|
Post = true;
|
||||||
|
PostData = postData;
|
||||||
|
HTTPContext = NULL;
|
||||||
|
URL = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
RequestBroker::ProcessResponse WebRequest::Process(RequestBroker & rb)
|
||||||
|
{
|
||||||
|
if(HTTPContext)
|
||||||
|
{
|
||||||
|
if(http_async_req_status(HTTPContext))
|
||||||
|
{
|
||||||
|
char * data;
|
||||||
|
int status, data_size;
|
||||||
|
data = http_async_req_stop(HTTPContext, &status, &data_size);
|
||||||
|
|
||||||
|
if (status == 200 && data)
|
||||||
|
{
|
||||||
|
void * resultObject = new std::vector<unsigned char>(data, data+data_size);
|
||||||
|
|
||||||
|
if(resultObject)
|
||||||
|
{
|
||||||
|
this->ResultObject = resultObject;
|
||||||
|
rb.requestComplete(this);
|
||||||
|
free(data);
|
||||||
|
return RequestBroker::Finished;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout << typeid(*this).name() << " Request for " << URL << " could not be parsed: " << data << std::endl;
|
||||||
|
free(data);
|
||||||
|
return RequestBroker::Failed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//#ifdef DEBUG
|
||||||
|
std::cout << typeid(*this).name() << " Request for " << URL << " failed with status " << status << std::endl;
|
||||||
|
//#endif
|
||||||
|
if(data)
|
||||||
|
free(data);
|
||||||
|
|
||||||
|
return RequestBroker::Failed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout << typeid(*this).name() << " New Request for " << URL << std::endl;
|
||||||
|
if(Post)
|
||||||
|
{
|
||||||
|
char ** postNames = new char*[PostData.size() + 1];
|
||||||
|
char ** postData = new char*[PostData.size()];
|
||||||
|
int * postLength = new int[PostData.size()];
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
std::map<std::string, std::string>::iterator iter = PostData.begin();
|
||||||
|
while(iter != PostData.end())
|
||||||
|
{
|
||||||
|
std::string name = iter->first;
|
||||||
|
std::string data = iter->second;
|
||||||
|
char * cName = new char[name.length() + 1];
|
||||||
|
char * cData = new char[data.length() + 1];
|
||||||
|
std::strcpy(cName, name.c_str());
|
||||||
|
std::strcpy(cData, data.c_str());
|
||||||
|
postNames[i] = cName;
|
||||||
|
postData[i] = cData;
|
||||||
|
postLength[i] = data.length();
|
||||||
|
i++;
|
||||||
|
iter++;
|
||||||
|
}
|
||||||
|
postNames[i] = NULL;
|
||||||
|
|
||||||
|
if(Client::Ref().GetAuthUser().ID)
|
||||||
|
{
|
||||||
|
std::cout << typeid(*this).name() << " Authenticated " << std::endl;
|
||||||
|
User user = Client::Ref().GetAuthUser();
|
||||||
|
char userName[12];
|
||||||
|
char *userSession = new char[user.SessionID.length() + 1];
|
||||||
|
std::strcpy(userName, format::NumberToString<int>(user.ID).c_str());
|
||||||
|
std::strcpy(userSession, user.SessionID.c_str());
|
||||||
|
HTTPContext = http_multipart_post_async((char*)URL.c_str(), postNames, postData, postLength, userName, NULL, userSession);
|
||||||
|
delete userSession;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HTTPContext = http_multipart_post_async((char*)URL.c_str(), postNames, postData, postLength, NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HTTPContext = http_async_req_start(NULL, (char *)URL.c_str(), NULL, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return RequestBroker::OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
WebRequest::~WebRequest()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void WebRequest::Cleanup()
|
||||||
|
{
|
||||||
|
Request::Cleanup();
|
||||||
|
if(ResultObject)
|
||||||
|
{
|
||||||
|
delete (std::vector<unsigned char>*)ResultObject;
|
||||||
|
ResultObject = NULL;
|
||||||
|
}
|
||||||
|
}
|
17
src/client/requestbroker/WebRequest.h
Normal file
17
src/client/requestbroker/WebRequest.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include <map>
|
||||||
|
#include "RequestBroker.h"
|
||||||
|
|
||||||
|
class WebRequest: public RequestBroker::Request
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool Post;
|
||||||
|
std::string URL;
|
||||||
|
std::map<std::string, std::string> PostData;
|
||||||
|
void * HTTPContext;
|
||||||
|
WebRequest(std::string url, ListenerHandle listener = ListenerHandle(0, (RequestListener*)0), int identifier = 0);
|
||||||
|
WebRequest(std::string url, std::map<std::string, std::string>, ListenerHandle listener = ListenerHandle(0, (RequestListener*)0), int identifier = 0);
|
||||||
|
virtual RequestBroker::ProcessResponse Process(RequestBroker & rb);
|
||||||
|
virtual ~WebRequest();
|
||||||
|
virtual void Cleanup();
|
||||||
|
};
|
||||||
|
|
@ -40,7 +40,7 @@ void AvatarButton::Tick(float dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AvatarButton::OnResponseReady(void * imagePtr)
|
void AvatarButton::OnResponseReady(void * imagePtr, int identifier)
|
||||||
{
|
{
|
||||||
VideoBuffer * image = (VideoBuffer*)imagePtr;
|
VideoBuffer * image = (VideoBuffer*)imagePtr;
|
||||||
if(image)
|
if(image)
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
virtual void Draw(const Point& screenPos);
|
virtual void Draw(const Point& screenPos);
|
||||||
virtual void Tick(float dt);
|
virtual void Tick(float dt);
|
||||||
|
|
||||||
virtual void OnResponseReady(void * imagePtr);
|
virtual void OnResponseReady(void * imagePtr, int identifier);
|
||||||
|
|
||||||
virtual void DoAction();
|
virtual void DoAction();
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ SaveButton::~SaveButton()
|
|||||||
delete file;
|
delete file;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveButton::OnResponseReady(void * imagePtr)
|
void SaveButton::OnResponseReady(void * imagePtr, int identifier)
|
||||||
{
|
{
|
||||||
VideoBuffer * image = (VideoBuffer*)imagePtr;
|
VideoBuffer * image = (VideoBuffer*)imagePtr;
|
||||||
if(image)
|
if(image)
|
||||||
|
@ -58,7 +58,7 @@ public:
|
|||||||
virtual void Draw(const Point& screenPos);
|
virtual void Draw(const Point& screenPos);
|
||||||
virtual void Tick(float dt);
|
virtual void Tick(float dt);
|
||||||
|
|
||||||
virtual void OnResponseReady(void * imagePtr);
|
virtual void OnResponseReady(void * imagePtr, int identifier);
|
||||||
|
|
||||||
void SetSelected(bool selected_) { selected = selected_; }
|
void SetSelected(bool selected_) { selected = selected_; }
|
||||||
bool GetSelected() { return selected; }
|
bool GetSelected() { return selected; }
|
||||||
|
@ -167,7 +167,7 @@ void ProfileActivity::setUserInfo(UserInfo newInfo)
|
|||||||
//exit(0);
|
//exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileActivity::OnResponseReady(void * userDataPtr)
|
void ProfileActivity::OnResponseReady(void * userDataPtr, int identifier)
|
||||||
{
|
{
|
||||||
if(loading)
|
if(loading)
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,7 @@ class ProfileActivity: public WindowActivity, public RequestListener {
|
|||||||
public:
|
public:
|
||||||
ProfileActivity(std::string username);
|
ProfileActivity(std::string username);
|
||||||
virtual ~ProfileActivity();
|
virtual ~ProfileActivity();
|
||||||
virtual void OnResponseReady(void * userDataPtr);
|
virtual void OnResponseReady(void * userDataPtr, int identifier);
|
||||||
virtual void OnDraw();
|
virtual void OnDraw();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ void LocalSaveActivity::OnDraw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalSaveActivity::OnResponseReady(void * imagePtr)
|
void LocalSaveActivity::OnResponseReady(void * imagePtr, int identifier)
|
||||||
{
|
{
|
||||||
if(thumbnail)
|
if(thumbnail)
|
||||||
delete thumbnail;
|
delete thumbnail;
|
||||||
|
@ -34,6 +34,6 @@ public:
|
|||||||
void saveWrite(std::string finalFilename);
|
void saveWrite(std::string finalFilename);
|
||||||
virtual void Save();
|
virtual void Save();
|
||||||
virtual void OnDraw();
|
virtual void OnDraw();
|
||||||
virtual void OnResponseReady(void * imagePtr);
|
virtual void OnResponseReady(void * imagePtr, int identifier);
|
||||||
virtual ~LocalSaveActivity();
|
virtual ~LocalSaveActivity();
|
||||||
};
|
};
|
||||||
|
@ -335,7 +335,7 @@ void ServerSaveActivity::OnDraw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerSaveActivity::OnResponseReady(void * imagePtr)
|
void ServerSaveActivity::OnResponseReady(void * imagePtr, int identifier)
|
||||||
{
|
{
|
||||||
if(thumbnail)
|
if(thumbnail)
|
||||||
delete thumbnail;
|
delete thumbnail;
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
virtual void ShowPublishingInfo();
|
virtual void ShowPublishingInfo();
|
||||||
virtual void ShowRules();
|
virtual void ShowRules();
|
||||||
virtual void OnDraw();
|
virtual void OnDraw();
|
||||||
virtual void OnResponseReady(void * imagePtr);
|
virtual void OnResponseReady(void * imagePtr, int identifier);
|
||||||
virtual void OnTick(float dt);
|
virtual void OnTick(float dt);
|
||||||
virtual ~ServerSaveActivity();
|
virtual ~ServerSaveActivity();
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
Reference in New Issue
Block a user