Exemplo n.º 1
0
void forkOutList(int socket)
/* Fork instance of self to send list of all things tracked
 * down socket. */
{
if (fork() == 0)
    {
    returnList(socket);
    exit(0);
    }
else
    {
    clearZombies();
    }
}
Exemplo n.º 2
0
SLevelListPtr CPlayerLevels::SaveLevel( CLevel& level )
{
	char IdString[50];
	sprintf_s(IdString,49,"%d",gPlaytomic->GameId());
	std::string url = kPlayerLevelSaveUrl1 + gPlaytomic->GetGameGuid() +kPlayerLevelSaveUrl2 +
		IdString + kPlayerLevelSaveUrl3 + gPlaytomic->GetSourceUrl();
	CPost postData;

	postData.AddText("data", level.GetData().c_str());
	postData.AddText("playerid", level.GetPlayerId().c_str());
	postData.AddText("playername", level.GetPlayerName().c_str());
	postData.AddText("playersource", level.GetPlayerSource().c_str());
	postData.AddText("name",level.GetName().c_str());
	postData.AddText("nothumb", "y");

	sprintf_s(IdString, 49, "%d", level.GetCustomData().size());
	postData.AddText("customfields", IdString);

	const CustomData& customData = level.GetCustomData();
	CustomData::const_iterator it = customData.begin();
	int fieldNumber = 0;
	for (; it != customData.end(); it++)
	{
		char buff[10];
		sprintf_s(buff,9,"%d", fieldNumber);
		std::string ckey("ckey");
		std::string cdata("cdata");
		ckey += buff;
		cdata += buff;

		postData.AddText(ckey.c_str(), it->first.c_str());
		postData.AddText(cdata.c_str(), it->second.c_str());
	}

	CPlaytomicResponsePtr response = gConnectionInterface->PerformSyncRequest(url.c_str(), &postData);
	SLevelListPtr returnList(new SLevelList);
	returnList->sErrorCode = response->ResponseError();
	returnList->sSucceded = response->ResponseSucceded();
	if(!response->ResponseSucceded())
	{
		return returnList;
	}

	FData id;
	id = response->ResponseData().get("LevelId", id);
	std::list<CLevel> levelList;
	AddLevel(response->ResponseData(), id.asString(), returnList->sLevelList);

	return returnList;
}
Exemplo n.º 3
0
SLevelListPtr CPlayerLevels::LoadLevel( const std::string& levelId )
{
	char IdString[50];
	sprintf_s(IdString,49,"%d",gPlaytomic->GameId());
	std::string url = kPlayerLevelUrl1 + gPlaytomic->GetGameGuid() +kPlayerLevelUrl2 +
		IdString + kPlayerLevelUrl3 + levelId;

	CPlaytomicResponsePtr response = gConnectionInterface->PerformSyncRequest(url.c_str());
	SLevelListPtr returnList(new SLevelList);
	returnList->sErrorCode = response->ResponseError();
	returnList->sSucceded = response->ResponseSucceded();
	if(!response->ResponseSucceded())
	{
		return returnList;
	}
	AddLevel(response->ResponseData(), levelId, returnList->sLevelList);

	return returnList;
}
Exemplo n.º 4
0
SLevelListPtr CPlayerLevels::List( const std::string& mode, 
	int page, int perPage,
	bool includeData, bool includeThumbs,
	const CustomData& customFilter )
{
	std::string modeSafe = mode.empty() ? "popular" : (mode == "newest" || mode == "popular" ? mode : "popular");
	char dataSafe = includeData ? 'y': 'n';
	char thumSafe = includeThumbs ? 'y': 'n';

	
	
	char IdString[50];
	sprintf_s(IdString,49,"%d",gPlaytomic->GameId());
	std::string url = kPlayerLevelListUrl1 + gPlaytomic->GetGameGuid() +kPlayerLevelListUrl2 +
		IdString + kPlayerLevelListUrl3 + modeSafe;
	sprintf_s(IdString,49,"%d", page);
	url += kPlayerLevelListUrl4 + page;
	sprintf_s(IdString,49,"%d", perPage);
	url += kPlayerLevelListUrl5; url += IdString;
	url += kPlayerLevelListUrl6;
	url += dataSafe;
	url += kPlayerLevelListUrl7;
	url += thumSafe;
	sprintf_s(IdString,49,"%d", customFilter.size());
	url += kPlayerLevelListUrl10;
	url += IdString;

	CPost postData;

	if(!customFilter.empty())
	{
		int fieldNumber = 0;
		CustomData::const_iterator  it = customFilter.begin();
		for(; it != customFilter.end(); it++)
		{
			char buff[10];
			sprintf_s(buff,9,"%d", fieldNumber);
			std::string ckey("ckey");
			std::string cdata("cdata");
			ckey += buff;
			cdata += buff;
			
			postData.AddText(ckey.c_str(), it->first.c_str());
			postData.AddText(cdata.c_str(), it->second.c_str());
		}
	}
	CPlaytomicResponsePtr response = gConnectionInterface->PerformSyncRequest(url.c_str(), &postData);
	SLevelListPtr returnList( new SLevelList);
	returnList->sErrorCode = response->ResponseError();
	returnList->sSucceded = response->ResponseSucceded();
	if (!returnList->sSucceded)
	{
		return returnList;
	}
	FData	levelArray(Json::arrayValue);

	const FData& queryData = response->ResponseData();

	FData ScoreList;


	levelArray = queryData.get("Levels", levelArray);

	
	FData value;
	value = queryData.get("NumLevels", value);
	for (size_t i = 0; i < levelArray.size(); i++)
	{
		value = levelArray[(int)i].get("LevelId", value);

	
		AddLevel(levelArray[(int)i], value.asString(), returnList->sLevelList);
	}
	return returnList;
}