示例#1
0
    StatusResponse CommandInterface::ParseStatusResponse(const CommandResponse &res) {
        StatusResponse result;

        lnh_equ_posn equ_posn = {{0, 0, 0},
                                 {0, 0, 0, 0}};
        HMS ra{};
        DMS dec(res.payload.at("DEC"));

        std::stringstream ss{res.payload.at("RA")};
        ss >> ra;

        equ_posn.ra = ra;
        equ_posn.dec = dec;
        result.equ = {0, 0};
        ln_hequ_to_equ(&equ_posn, &result.equ);

        result.state = ParseState(res.payload.at("STATE"));
        result.executing_goto = res.payload.at("GOTO") == "1";

        return result;
    }
示例#2
0
AutoUTF	Panel::Info(WinTS::iterator cur) {
	AutoUTF	ret(L"Id:           ");
	ret += Num2Str((size_t)cur->id());
	ret += L"\n\n";
	ret += L"User name:    ";
	ret += cur->user();
	ret += L"\n\n";
	ret += L"State:        ";
	ret += ParseState(cur->state());
	ret += L"\n\n";
	ret += L"Session:      ";
	ret += cur->sess();
	ret += L"\n\n";
	ret += L"WinStation:   ";
	ret += cur->winSta();
	ret += L"\n\n";
	ret += L"Client:       ";
	ret += cur->client();
	ret += L"\n\n";
	return	ret;
}
示例#3
0
int		Panel::GetFindData(PluginPanelItem **pPanelItem, int *pItemsNumber, int /*OpMode*/) {
	*pPanelItem = nullptr;
	*pItemsNumber = 0;

	try {
		m_ts.Cache(m_conn->host());
		WinMem::Alloc(*pPanelItem, sizeof(**pPanelItem) * m_ts.size());
		*pItemsNumber = m_ts.size();

		int		i = 0;
		for (WinTS::iterator it = m_ts.begin(); it != m_ts.end(); ++it) {
			WinTSInfo	&info = *it;
			(*pPanelItem)[i].FindData.lpwszFileName = info.user().c_str();
			(*pPanelItem)[i].FindData.lpwszAlternateFileName = info.user().c_str();
			(*pPanelItem)[i].FindData.nFileSize = info.id();
			(*pPanelItem)[i].Description = ParseState(info.state());
			(*pPanelItem)[i].Owner = info.sess().c_str();

			if (info.is_disconnected())
				(*pPanelItem)[i].FindData.dwFileAttributes = FILE_ATTRIBUTE_HIDDEN;
			PCWSTR	*CustomColumnData;
			WinMem::Alloc(CustomColumnData, 1 * sizeof(PCWSTR));
			if (CustomColumnData) {
				CustomColumnData[0] = info.client().c_str();
				(*pPanelItem)[i].CustomColumnData = CustomColumnData;
				(*pPanelItem)[i].CustomColumnNumber = 1;
			}
			(*pPanelItem)[i].UserData = i;
			++i;
		}
	} catch (WinError &e) {
		farebox_code(e.code(), e.where().c_str());
	}

	return	true;
}
示例#4
0
static function_t *ParseImmediateStatements (type_t *type)
{
	int		i;
	function_t	*f;
	def_t	*defs[MAX_PARMS];
	def_t	*scopeDef;
	def_t	*searchDef;

	f = (function_t *) malloc(sizeof(function_t));

	// Check for builtin function definition
	if (TK_CHECK(TK_COLON))
	{
		if (pr_token_type != tt_immediate
			|| pr_immediate_type != &type_float
			|| pr_immediate._float != (int)pr_immediate._float)
		{
			PR_ParseError("bad builtin immediate");
		}
		f->builtin = (int)pr_immediate._float;
		LX_Fetch();
		return f;
	}

	f->builtin = 0;

	// Define the parms
	for (i = 0; i < type->num_parms; i++)
	{
		defs[i] = PR_GetDef(type->parm_types[i], pr_parm_names[i], pr_scope, true);
		f->parm_ofs[i] = defs[i]->ofs;
		if (i > 0 && f->parm_ofs[i] < f->parm_ofs[i-1])
		{
			PR_ParseError("bad parm order");
		}
	}

	f->code = numstatements;

	// Check for a state opcode
	if (TK_CHECK(TK_LBRACKET))
	{
		ParseState();
	}

	// Check for regular statements
	st_ReturnType = type->aux_type;
	st_ReturnParsed = false;
	if (TK_CHECK(TK_LBRACE))
	{
		scopeDef = pr_scope;
		searchDef = pr.def_tail;

		while (pr_tokenclass != TK_RBRACE)
		{
			ST_ParseStatement();
		}

		while ((searchDef = searchDef->next) != NULL)
		{
			if (searchDef->scope == scopeDef
				&& searchDef->referenceCount == 0
				&& searchDef->parentVector == NULL)
			{
				PR_ParseWarning("unreferenced local variable '%s'", searchDef->name);
			}
		}
		if (type->aux_type->type != ev_void && st_ReturnParsed == false)
		{
			PR_ParseError("missing return");
		}

		LX_Fetch();
	}
	else if (type->aux_type->type != ev_void && st_ReturnParsed == false)
	{
		PR_ParseError("missing return");
	}

	// Emit an end of statements opcode
	CO_GenCode(pr_opcodes, 0, 0);

	return f;
}