Пример #1
0
static void AddIntAsVAL__4 (INTEGER num)
{
	INTEGER n, nulls;
	CHAR str[6];
	__ASSERT(num >= 0 && num <= 99999, 1);
	Strings_IntToStr(num, (void*)str, 6);
	Add__2(0xb0);
	Add__2('\"');
	n = 0;
	nulls = 0;
	do {
		if (str[__X(n, 6)] != '0') {
			nulls = 0;
		} else {
			nulls += 1;
		}
		Add__2(str[__X(n, 6)]);
		n += 1;
	} while (!(str[__X(n, 6)] == 0x00));
	if (nulls >= 3) {
		*GenTapeLoader__1_s->loaderLen -= nulls;
		Add__2('e');
		Add__2((CHAR)(nulls + 48));
	}
	Add__2('\"');
}
Пример #2
0
void JsonExpressFormater::WriteExpression(stringx name, ref<JsonNode> node, ref<StringBuilder> sb, int level)
{
	switch (node->GetType())
	{
	case JSN_String:
		WriteValue(name, '\"' + node->TextValue() + '\"', sb, level);
		break;
	case JSN_Integer:
		WriteValue(name, Converter::ToString(node->IntValue()), sb, level);
		break;
	case JSN_Boolean:
		WriteValue(name, node->BoolValue() ? __X("true") : __X("false"), sb, level);
		break;
	case JSN_None:
		WriteValue(name, __X("null"), sb, level);
		break;
	case JSN_Dictionary:
		WriteSubDictionary(name, node, sb, level);
		break;
	case JSN_NodeList:
		WriteSubList(name, node, sb, level);
		break;
	default:
		cdec_throw(JsonException(EC_JSON_NotImplemented, 0));
	}
}
Пример #3
0
static void ConsoleChar__2 (CHAR ch)
{
	(*Cat__1_s->buf)[__X(*Cat__1_s->bufpos, 1024)] = ch;
	*Cat__1_s->bufpos += 1;
	if (*Cat__1_s->bufpos == 1023) {
		(*Cat__1_s->buf)[__X(*Cat__1_s->bufpos, 1024)] = 0x00;
		Console_String(*Cat__1_s->buf, 1024);
		*Cat__1_s->bufpos = 0;
	}
}
Пример #4
0
size_t CurlHeaderWriteCallback(void* buffer, size_t size, size_t nmemb, void* user_p)
{
	ICurlResponseWriter* response = (ICurlResponseWriter*)user_p;
	size_t cbop = size * nmemb;
	stringx s = Encoding::get_UTF8()->GetString((BYTE*)buffer, cbop);
	s = s.TrimRight();

	if (s.StartsWith(__X("HTTP")))
	{
		// Console::WriteLine(__X("[HTTP State] ") + s);
		response->SetHttpState(s);
	}
	else if (s.Length() != 0)
	{
		int pos = s.IndexOf(':');
		ASSERT(pos > 0);
		stringx key = s.Substring(0, pos).TrimRight();
		stringx value = s.Substring(pos + 1).TrimLeft();

		// Console::WriteLine(__X("[Header] Key=\"") + key + __X("\" Value=\"") + value + '\"');
		response->AddHeader(key, value);
	}

	return cbop;
}
Пример #5
0
int main(int argc, char **argv)
{
	__INIT(argc, argv);
	__IMPORT(CmdLine__init);
	__IMPORT(Console__init);
	__IMPORT(Strings__init);
	__REGMAIN("CmdLineTest", 0);
/* BEGIN */
	CmdLineTest__for__2 = CmdLine_ParamCount;
	CmdLineTest_n = 1;
	while (CmdLineTest_n <= CmdLineTest__for__2) {
		CmdLine_GetParam(CmdLineTest_n, (void*)CmdLineTest_param, 1024);
		Console_WriteInt(CmdLineTest_n);
		Console_WriteStr((CHAR*)":", 2);
		Console_WriteStrLn(CmdLineTest_param, 1024);
		CmdLineTest__for__1 = (SHORTINT)Strings_Length((void*)CmdLineTest_param, 1024) - 1;
		CmdLineTest_i = 0;
		while (CmdLineTest_i <= CmdLineTest__for__1) {
			Console_WriteInt((SHORTINT)CmdLineTest_param[__X(CmdLineTest_i, 1024)]);
			Console_WriteStr((CHAR*)",", 2);
			CmdLineTest_i += 1;
		}
		Console_WriteLn();
		CmdLineTest_n += 1;
	}
	__FINI;
}
Пример #6
0
static void Add__2 (SYSTEM_BYTE byte)
{
	if ((LONGINT)*GenTapeLoader__1_s->loaderLen < GenTapeLoader__1_s->loader__len) {
		GenTapeLoader__1_s->loader[__X(*GenTapeLoader__1_s->loaderLen, GenTapeLoader__1_s->loader__len)] = byte;
	}
	*GenTapeLoader__1_s->loaderLen += 1;
}
Пример #7
0
void ZXBasic_GenTapeLoader (INTEGER codeStartAddr, INTEGER *loaderLen, SYSTEM_BYTE *loader, LONGINT loader__len)
{
	struct GenTapeLoader__1 _s;
	_s.loaderLen = loaderLen;
	_s.loader = (void*)loader; _s.loader__len = loader__len;
	_s.lnk = GenTapeLoader__1_s;
	GenTapeLoader__1_s = &_s;
	__ASSERT(loader__len > 5, 1);
	*loaderLen = 0;
	if (codeStartAddr >= 23900 && codeStartAddr <= 65535) {
		Add__2(0);
		Add__2(10);
		Add__2(0);
		Add__2(0);
		Add__2(0xfd);
		AddIntAsVAL__4(codeStartAddr - 1);
		Add__2(':');
		Add__2(0xef);
		Add__2('\"');
		Add__2('\"');
		Add__2(0xaf);
		Add__2(':');
		Add__2(0xf9);
		Add__2(0xc0);
		AddIntAsVAL__4(codeStartAddr);
		Add__2(0x0d);
		loader[__X(2, loader__len)] = (int)(*loaderLen - 4);
		if ((LONGINT)*loaderLen > loader__len) {
			*loaderLen = 0;
		}
	}
	GenTapeLoader__1_s = _s.lnk;
}
Пример #8
0
void OCatCmd_Cat (void)
{
	CHAR path[128];
	INTEGER i;
	Texts_Text T = NIL;
	Texts_Reader R;
	CHAR ch;
	BOOLEAN tab;
	CHAR buf[1024];
	INTEGER bufpos;
	struct Cat__1 _s;
	_s.buf = (void*)buf;
	_s.bufpos = &bufpos;
	_s.lnk = Cat__1_s;
	Cat__1_s = &_s;
	path[0] = 0x00;
	__NEW(T, Texts_TextDesc);
	Args_Get(1, (void*)path, 128);
	if (__STRCMP(path, "-t") == 0) {
		tab = 1;
		i = 2;
		Args_Get(2, (void*)path, 128);
	} else {
		tab = 0;
		i = 1;
	}
	while (path[0] != 0x00) {
		if (Files_Old(path, 128) != NIL) {
			Texts_Open(T, path, 128);
			Texts_OpenReader(&R, Texts_Reader__typ, T, 0);
			Texts_Read(&R, Texts_Reader__typ, &ch);
			bufpos = 0;
			while (!R.eot) {
				if (ch >= ' ') {
					ConsoleChar__2(ch);
				} else if (ch == 0x09) {
					if (tab) {
						ConsoleChar__2(ch);
					} else {
						ConsoleChar__2(' ');
						ConsoleChar__2(' ');
					}
				} else if (ch == 0x0d) {
					ConsoleChar__2(0x0a);
				}
				Texts_Read(&R, Texts_Reader__typ, &ch);
			}
			buf[__X(bufpos, 1024)] = 0x00;
			Console_String(buf, 1024);
		} else {
			Console_String((CHAR*)"OCat: cannot open ", 19);
			Console_String(path, 128);
			Console_Ln();
		}
		i += 1;
		path[0] = 0x00;
		Args_Get(i, (void*)path, 128);
	}
	Cat__1_s = _s.lnk;
}
Пример #9
0
void JsonExpressFormater::WriteSubDictionary(stringx name, ref<JsonNode> node, ref<StringBuilder> sb, int level)
{
	WriteValue(name, __X("{"), sb, level);
	WriteNewLine(sb);

	ref<JsonNode::JsonNodeDictionary> dict = node->NodeDictionary();
	int count = dict->Count();
	foreach (ref<JsonNode>, subnode, dict)
	{
		ASSERT(subnode->GetName() != NULL);
		WriteExpression(subnode->GetName(), subnode, sb, level + 1);
		if (--count > 0)
			sb->Append(',');
		WriteNewLine(sb);
	}
Пример #10
0
void JsonExpressFormater::WriteValue(stringx name, stringx value, ref<StringBuilder> sb, int level)
{
	// Write indents
	if (IndentChars != NULL)
		for (int i = 0; i < level; ++i)
			sb->Append(IndentChars);

	// Write name
	if (name != NULL)
	{
		sb->Append('\"');
		sb->Append(name);
		sb->Append(__X("\":"));
	}

	sb->Append(value);
}
Пример #11
0
void CurlEasy::SetProxy(stringx proxyHost, UINT proxyPort, CurlProxyType proxyType /* = CPT_SOCKS4 */)
{
	stringx hostPort = proxyHost + __X(":") + Converter::ToString(proxyPort);

	CURLcode code = curl_easy_setopt(
		m_curl, 
		CURLOPT_PROXY, 
		Encoding::get_UTF8()->FromUnicode(hostPort).c_str()
	);
	VERIFY_CURL_CODE(code);

	code = curl_easy_setopt(
		m_curl,
		CURLOPT_PROXYTYPE,
		proxyType == CPT_SOCKS4 ? CURLPROXY_SOCKS4 : CURLPROXY_SOCKS5
	);
	VERIFY_CURL_CODE(code);
}
Пример #12
0
	void testMapWin32Basic()
	{
#ifdef X_OS_WINDOWS
		stringx sampleFile = TestEnv::get_sample_path(__X("test_mapping.bin"));
		File::Delete(sampleFile);

		ref<FileStream> fs = gc_new<FileStream>(sampleFile, FileStream::AccessReadWrite, true);
		const int n = 10000;
		fs->SetLength(n * 4096);
		for (int i = 0; i < n; ++i)
		{
			fs->Seek(i * 4096);
			fs->Write(&i, 4);
		}

		ref<FileMappingWin32> map = gc_new<FileMappingWin32>(fs, true);
		BYTE* pbase = (BYTE*)map->MapView(0, 0, true);
		BYTE* p = pbase;
		for (int i = 0; i < n; ++i)
		{
			UNITTEST_ASSERT(*(int*)p == i);
			*(int*)p = -i;
			p += 4096;
		}

		map->UnmapView(pbase);
		map->Close();

		int value;
		for (int i = 0; i < n; ++i)
		{
			fs->Seek(i * 4096);
			UNITTEST_ASSERT(fs->Read(&value, 4) == 4);
			UNITTEST_ASSERT(value == -i);
		}

		fs->Close();
		File::Delete(sampleFile);
#endif
	}
Пример #13
0
CDEC_NS_BEGIN

// -------------------------------------------------------------------------- //
// DbConnectionManager
// -------------------------------------------------------------------------- //

void ConnectionManager::LoadXmlConfig(stringx path, ConnectionManager::Config& config)
{
    ref<XmlDocument> doc = gc_new<XmlDocument>();
    doc->Load(path);

    ref<XmlElement> eDs = doc->get_DocumentElement();
    if (eDs->get_NodeName() != __X("dbconfig"))
        cdec_throw(Exception(EC_InvalidValue));

    ref<XmlElement> eConfig = eDs->SelectSingleNode(__X("config"));
    if (eConfig == NULL)
        cdec_throw(Exception(EC_InvalidPtr));

    config.Url = eConfig->get_Attribute(__X("dburl"))->get_Value();
    config.Username = eConfig->get_Attribute(__X("uname"))->get_Value();
    config.Password = eConfig->get_Attribute(__X("pwd"))->get_Value();
    config.Database = eConfig->get_Attribute(__X("database"))->get_Value();
}
Пример #14
0
	void setUp()
	{
		m_name = __X("TestLogWriter.log");
		LogOutputFile::Init(m_name);	
	}
Пример #15
0
LONGINT SYSTEM_XCHK(LONGINT i, LONGINT ub) {return __X(i, ub);}
Пример #16
0
LONGINT SYSTEM_XCHK(LONGINT i, LONGINT ub, CHAR *mod, INTEGER pos) {return __X(i, ub, mod, pos);}
Пример #17
0
	void testWriteWarn()
	{
		stringx message = __X("testWriteWarn");
		YWARN << message;
		testWriteHlp(LOG_WARNING, message, 4);
	}
Пример #18
0
	void testWriteClaim()
	{
		stringx message = __X("testWriteClaim");
		YCLAIM << message;
		testWriteHlp(LOG_CLAIM, message, 4);
	}
Пример #19
0
	void testWriteError()
	{
		stringx message = __X("testWriteError");
		YERR << message;
		testWriteHlp(LOG_ERROR, message, 4);
	}
Пример #20
0
	WriteValue(name, __X("{"), sb, level);
	WriteNewLine(sb);

	ref<JsonNode::JsonNodeDictionary> dict = node->NodeDictionary();
	int count = dict->Count();
	foreach (ref<JsonNode>, subnode, dict)
	{
		ASSERT(subnode->GetName() != NULL);
		WriteExpression(subnode->GetName(), subnode, sb, level + 1);
		if (--count > 0)
			sb->Append(',');
		WriteNewLine(sb);
	}
	ASSERT(count == 0);

	WriteValue(NULL, __X("}"), sb, level);
}

void JsonExpressFormater::WriteSubList(stringx name, ref<JsonNode> node, ref<StringBuilder> sb, int level)
{
	WriteValue(name, __X("["), sb, level);
	WriteNewLine(sb);

	ref<JsonNode::JsonNodeList> list = node->NodeList();
	int count = list->Count();
	foreach (ref<JsonNode>, subnode, list)
	{
		ASSERT(subnode->GetName() == NULL);
		WriteExpression(NULL, subnode, sb, level + 1);
		if (--count > 0)
			sb->Append(',');
Пример #21
0
	void testComposit()
	{
		ref<StringWriter> wr = gc_new<StringWriter>();
		ref<XmlWriter> xmlw = gc_new<XmlWriter>(wr);

		xmlw->BeginDocument(false, NULL);
		xmlw->BeginElement(__X("library"));
		xmlw->BeginElement(__X("book"));
		xmlw->AddAttribute(__X("name"), __X("test"));
		xmlw->AddAttribute(__X("alias"), __X(""));
		xmlw->AddValue(__X("moon"));
		xmlw->EndElement(__X("book"));
		xmlw->BeginElement(__X("book"));
		xmlw->EndElement(__X("book"));
		xmlw->EndElement(__X("library"));
		xmlw->EndDocument();

		stringx xmltext = wr->GetStringBuilder()->ToString();
		PCWSTR xmltext_t = __X("<library>\n  <book name=\"test\" alias=\"\">moon</book>\n  <book />\n</library>\n");
		UNITTEST_ASSERT(xmltext == xmltext_t);
	}
Пример #22
0
	void testWriteInfo()
	{
		stringx message = __X("testWriteInfo");
		YLOG << message;
		testWriteHlp(LOG_INFORMATION, message, 4);
	}
Пример #23
0
void CurlEasy::AddHeader(stringx key, stringx value)
{
	stringx line = key + __X(": ") + value;
	m_headers.push_back(Encoding::get_UTF8()->FromUnicode(line));
}