Пример #1
0
//Calls the lua callbacks associated with this query
void Transaction::doCallback(GarrysMod::Lua::ILuaBase* LUA, std::shared_ptr<IQueryData> ptr) {
	TransactionData* data = (TransactionData*)ptr.get();
	data->setStatus(QUERY_COMPLETE);
	for (auto& pair : data->m_queries) {
		auto query = pair.first;
		auto queryData = pair.second;
		query->setCallbackData(queryData);
	}
	switch (data->getResultStatus()) {
	case QUERY_NONE:
		break;
	case QUERY_ERROR:
		if (data->getErrorReference() != 0) {
			this->runFunction(LUA, data->getErrorReference(), "s", data->getError().c_str());
		} else if (data->isFirstData()) {
			this->runCallback(LUA, "onError", "s", data->getError().c_str());
		}
		break;
	case QUERY_SUCCESS:
		if (data->getSuccessReference() != 0) {
			this->runFunction(LUA, data->getSuccessReference());
		} else if (data->isFirstData()) {
			this->runCallback(LUA, "onSuccess");
		}
		break;
	}
	for (auto& pair : data->m_queries) {
		auto query = pair.first;
		auto queryData = pair.second;
		query->onQueryDataFinished(LUA, queryData);
	}
}
Пример #2
0
static void SetPropFn(UpdaterInfo* pUI, TOKENINFO* pTokens, int nTokens,
		int nLineNo)
{
	fprintf(pUI->log_fp, "Setting property: %s, value: %s",
			pTokens[1].pString, pTokens[2].pString);
	property_set(pUI, pTokens[1].pString, pTokens[2].pString);
	setCallbackData(pUI, strdup(""));
}
Пример #3
0
static void KillByNameFn(UpdaterInfo* pUI, TOKENINFO* pTokens, int nTokens,
		int nLineNo)
{
	int signal = get_signal(pTokens[1].pString);
	fprintf(pUI->log_fp, "Killing process by name %s with signal %s\n",
			pTokens[2].pString, pTokens[1].pString);
	kill_processes_by_name(pUI->log_fp, pTokens[2].pString, signal);
	setCallbackData(pUI, strdup(""));
}
Пример #4
0
static void GetPropFn(UpdaterInfo* pUI, TOKENINFO* pTokens, int nTokens,
		int nLineNo)
{
	fprintf(pUI->log_fp, "Getting property: %s\n", pTokens[1].pString);
	char value[PROPERTY_VALUE_MAX];
	pUI->callbackReturnCode = property_get(pTokens[1].pString, value, "");
	setCallbackData(pUI, strdup(value));
	fprintf(pUI->log_fp, "Got property: %s, value: %s\n",
			pTokens[1].pString, value);
}
Пример #5
0
static void RunFn(UpdaterInfo* pUI, TOKENINFO* pTokens, int nTokens,
		int nLineNo)
{
	int i, size;
	char* buffer = tokensToString(pTokens, nTokens);

	setCallbackData(pUI, buffer);
	fprintf(pUI->log_fp, "Running command: %s\n", buffer);
#ifdef ANDROID
	pUI->callbackReturnCode = system(pUI->callbackReturnData);
#else
	printf("\t ==> running: %s\n", buffer);
	pUI->callbackReturnCode = 1;
#endif
}
Пример #6
0
static void UIPrintFn(UpdaterInfo* pUI, TOKENINFO* pTokens, int nTokens,
		int nLineNo)
{
	char* buffer;
	char* line;

	fprintf(pUI->cmd_pipe, "ui_print\n");

	buffer = tokensToString(pTokens, nTokens);

	line = strtok(buffer, "\n");
	while (line)
	{
		fprintf(pUI->cmd_pipe, "ui_print %s\n", line);
		line = strtok(NULL, "\n");
	}
	fprintf(pUI->cmd_pipe, "ui_print\n");

	pUI->callbackReturnCode = 0;
	setCallbackData(pUI, buffer);
}
Пример #7
0
static void UIPrintAction(UpdaterInfo* pUI, TOKENINFO* pTokens,
		int nTokens, int nLineNo)
{
	pUI->callbackReturnCode = 0;
	setCallbackData(pUI, pTokens[0].pString);
}