static void CallbackReceiveMsg(const char *content, const char *json_extension, const void *callback)
{
	if (callback)
	{
		Talk::ReceiveMsgCallback* cb_pointer = (Talk::ReceiveMsgCallback*)callback;
		if (*cb_pointer)
		{
			IMMessage msg;
			ParseReceiveMessage(PCharToString(content), msg);
			(*cb_pointer)(msg);
		}
	}
}
static bool FilterTeamNotification(const char *content, const char *json_extension, const void *callback)
{
	if (callback)
	{
		Talk::TeamNotificationFilter* cb_point = (Talk::TeamNotificationFilter *)callback;
		if (*cb_point)
		{
			IMMessage msg;
			ParseReceiveMessage(PCharToString(content), msg);
			return (*cb_point)(msg);
		}
	}
	return false;
}
Beispiel #3
0
static void CallbackReceiveMsg(const char *content, const char *json_extension, const void *callback)
{
	if (callback)
	{
		Talk::ReveiveMsgCallback* cb_pointer = (Talk::ReveiveMsgCallback*)callback;
		if (*cb_pointer)
		{
			IMMessage msg;
			ParseReceiveMessage(PCharToString(content), msg);
			PostTaskToUIThread(std::bind((*cb_pointer), msg));
			//(*cb_pointer)(msg);
		}
	}
}
static void CallbackReceiveMessages(const char *content, const char *json_extension, const void *callback)
{
	if (callback)
	{
		Talk::ReceiveMsgsCallback* cb_pointer = (Talk::ReceiveMsgsCallback*)callback;
		if (*cb_pointer)
		{
			std::list<IMMessage> msgs;
			Json::Reader reader;
			Json::Value value;
			if (reader.parse(PCharToString(content), value) && value.isArray())
			{
				int size = value.size();
				for (int i = 0; i < size; i++)
				{
					IMMessage msg;
					ParseReceiveMessage(value[i], msg);
					msgs.push_back(msg);
				}
			}
			(*cb_pointer)(msgs);
		}
	}
}