您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ xsArg函数代码示例

51自学网 2021-06-03 11:51:01
  C++
这篇教程C++ xsArg函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中xsArg函数的典型用法代码示例。如果您正苦于以下问题:C++ xsArg函数的具体用法?C++ xsArg怎么用?C++ xsArg使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了xsArg函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: KPR_path2D_bezierCurveTo

void KPR_path2D_bezierCurveTo(xsMachine *the){	FskCanvas2dPath	path	= xsGetHostData(xsThis);	xsNumberValue	cp1x	= xsToNumber(xsArg(0));	xsNumberValue	cp1y	= xsToNumber(xsArg(1));	xsNumberValue	cp2x	= xsToNumber(xsArg(2));	xsNumberValue	cp2y	= xsToNumber(xsArg(3));	xsNumberValue	x		= xsToNumber(xsArg(4));	xsNumberValue	y		= xsToNumber(xsArg(5));	FskCanvas2dPathBezierCurveTo(NULL, path, cp1x, cp1y, cp2x, cp2y, x, y);}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:11,


示例2: KPR_Message

void KPR_Message(xsMachine* the){	xsStringValue url = NULL;	KprMessage self = NULL;	xsTry {		xsThrowIfFskErr(KprMessageURL(xsGetContext(the), xsToString(xsArg(0)), &url));		xsThrowIfFskErr(KprMessageNew(&self, url));		xsSetHostData(xsThis, self);		FskInstrumentedItemSendMessageDebug(self, kprInstrumentedMessageConstruct, self);		self->usage++; // host		FskMemPtrDispose(url);	}	xsCatch {		FskMemPtrDispose(url);		xsThrow(xsException);	}}
开发者ID:basuke,项目名称:kinomajs,代码行数:17,


示例3: xs_tftpd_connect

voidxs_tftpd_connect(xsMachine *the){	int s;	void *instance;	xsVars(1);	xsGet(xsVar(0), xsArg(0), xsID("nativeSocket"));	s = xsToInteger(xsVar(0));	instance = tftpd_connect(s, the, &xsThis);	if (instance == NULL) {		xsSetBoolean(xsResult, 0);		return;	}	xsSetHostData(xsThis, instance);	xsSetBoolean(xsResult, 1);}
开发者ID:basuke,项目名称:kinomajs,代码行数:17,


示例4: kprGrammar_countLines

void kprGrammar_countLines(xsMachine* the){    char* aString;    char c;    int i = 0;    aString = xsToString(xsArg(0));    while ((c = *aString)) {        if (c <= 0x20) {            if (c == 0x0A)                i++;        }        else            break;        aString++;    }    xsResult = xsInteger(i);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:17,


示例5: kpr2jsLoad

void kpr2jsLoad(xsMachine* the){    char* aPath;    FILE* aFile = NULL;    xsTry {        aPath = xsToString(xsArg(0));        aFile = fopen(aPath, "r");        xsElseError(aFile);        xsResult = xsParse(aFile, (xsGetter)fgetc, aPath, 1, xsSourceFlag | xsDebugFlag);        fclose(aFile);    }    xsCatch {        if (aFile)            fclose(aFile);        xsThrow(xsException);    }}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:18,


示例6: xs_env_next

voidxs_env_next(xsMachine *the){	char *p = xsGetHostData(xsThis);	char *pattern = xsToInteger(xsArgc) > 0 ? xsToString(xsArg(0)) : NULL;	while (*p != '/0') {		char *name = p;		p += strlen(p) + 1;		p += strlen(p) + 1;		if (pattern == NULL || *pattern == '/0' || strncmp(name, pattern, strlen(pattern)) == 0) {			xsSetString(xsResult, name);			xsSetHostData(xsThis, p);			return;		}	}	xsSetNull(xsResult);}
开发者ID:basuke,项目名称:kinomajs,代码行数:18,


示例7: xs_i2c_readByteDataSMB

void xs_i2c_readByteDataSMB(xsMachine *the){    xsI2C i2c = xsGetHostData(xsThis);	FskErr err;	UInt8 command = (UInt8)xsToInteger(xsArg(0));	UInt8 byte;	DBG_I2C("xs_i2c_readByteDataSMB Reading byte from %u/n", reg);	xsThrowIfNULL(i2c);    FskPinI2CSetAddress(i2c->pin, i2c->address);	err = FskPinI2CReadDataByte(i2c->pin, command, &byte);	xsThrowDiagnosticIfFskErr(err, "I2C readByteDataSMB register %d failed %s.", (int)command, i2c->diagnosticID);    xsResult = xsInteger(byte);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:18,


示例8: KPR_system_set_backGesture

void KPR_system_set_backGesture(xsMachine *the){	FskErr err = kFskErrNone;	char* path = NULL;	char* pathName = NULL;	FskFile file = NULL;	char* data = xsToString(xsArg(0));	xsIntegerValue size = FskStrLen(data);#if MINITV	pathName = TOUCHD_CONF;	// system("/etc/init.d/touchd.sh stop");#else	bailIfError(FskDirectoryGetSpecialPath(kFskDirectorySpecialTypeApplicationPreference, true, NULL, &path));	pathName = FskStrDoCat(path, "touchd.conf");	bailIfNULL(pathName);#endif	err = FskFileOpen(pathName, kFskFilePermissionReadWrite, &file);	if (kFskErrFileNotFound == err) {		bailIfError(FskFileCreate(pathName));		err = FskFileOpen(pathName, kFskFilePermissionReadWrite, &file);	}	else {		FskInt64 zero = 0;		err = FskFileSetSize(file, &zero);	}	bailIfError(err);	bailIfError(FskFileWrite(file, size, data, NULL));bail:	FskFileClose(file);#if MINITV    int pipe = open(TOUCH_PIPE, O_WRONLY | O_NONBLOCK);    if (pipe >= 0) {    	char data = 1;    	write(pipe, &data, 1);        close(pipe);    }	// system("/etc/init.d/touchd.sh start");#endif	if (path) {		FskMemPtrDispose(path);		FskMemPtrDispose(pathName);	}	xsThrowIfFskErr(err);}
开发者ID:VzqzAc,项目名称:kinomajs,代码行数:44,


示例9: xs_parse

void xs_parse(xsMachine* the){	xsIntegerValue c = xsToInteger(xsArgc);	xsVars(2);	if (c < 1)		xsSyntaxError("no buffer");	xsVar(0) = xsGet(xsGet(xsGlobal, xsID_xs), xsID_infoset);	if (c > 3)		xsVar(1) = xsCall3(xsVar(0), xsID_scan, xsArg(0), xsArg(2), xsArg(3));	else if (c > 2)		xsVar(1) = xsCall2(xsVar(0), xsID_scan, xsArg(0), xsArg(2));	else if (c > 1)		xsVar(1) = xsCall1(xsVar(0), xsID_scan, xsArg(0));	else		xsVar(1) = xsCall1(xsVar(0), xsID_scan, xsArg(0));	if (c > 1)		xsResult = xsCall2(xsVar(0), xsID_parse, xsVar(1), xsArg(1));	else		xsResult = xsCall1(xsVar(0), xsID_parse, xsVar(1));}
开发者ID:kouis3940,项目名称:kinomajs,代码行数:20,


示例10: KPR_canvasRenderingContext2D_isPointInPath

void KPR_canvasRenderingContext2D_isPointInPath(xsMachine *the){	FskCanvas2dContext	ctx			= xsGetHostData(xsThis);	FskCanvas2dPath		path		= NULL;	SInt32				fillRule	= kFskCanvas2dFillRuleNonZero;	int					numArgs		= xsToInteger(xsArgc);	xsNumberValue		x, y;	if (xsIsInstanceOf(xsArg(0), xsGet(xsGet(xsGlobal, xsID_KPR), xsID("path2D")))) {	/* ctx.isPointInPath(path, x, y) */		path = xsGetHostData(xsArg(0));		x = xsToNumber(xsArg(1));		y = xsToNumber(xsArg(2));		if (numArgs > 3)	fillRule = GetFillRule(xsToString(xsArg(3)));				/* ctx.isPointInPath(path, x, y, fillRule) */	} else {																			/* ctx.isPointInPath(x, y) */		x = xsToNumber(xsArg(0));		y = xsToNumber(xsArg(1));		if (numArgs > 2)	fillRule = GetFillRule(xsToString(xsArg(2)));				/* ctx.isPointInPath(x, y, fillRule) */	}	xsResult = xsBoolean(FskCanvas2dIsPointInPathFill(ctx, path, x, y, fillRule));}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:20,


示例11: xs_i2c_readWordDataSMB

void xs_i2c_readWordDataSMB(xsMachine *the){    xsI2C i2c = xsGetHostData(xsThis);    UInt8 command = (UInt8)xsToInteger(xsArg(0));	FskErr err;    UInt16 val;      DBG_I2C("xs_i2c_readWordDataSMB Call SMB to register %d/n", command);	xsThrowIfNULL(i2c);    FskPinI2CSetAddress(i2c->pin, i2c->address);    err = FskPinI2CReadDataWord(i2c->pin, command, &val);//@@        if (! (i2c->address == 0x36) ) xsTraceDiagnostic("I2C readWordDataSMB register %d failed %s.", (int)reg, i2c->diagnosticID);	xsThrowDiagnosticIfFskErr(err, "I2C readWordDataSMB register %d failed %s.", (int)command, i2c->diagnosticID);    xsResult = xsInteger(val);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:19,


示例12: xs_i2c_writeBlock

void xs_i2c_writeBlock(xsMachine* the){	FskErr err;	xsI2C i2c = xsGetHostData(xsThis);	int argc = xsToInteger(xsArgc), i;	UInt8 buffer[32], *bufPtr = buffer;	xsThrowIfNULL(i2c);    DBG_I2C("xs_i2c_writeBlock/n");	for (i = 0; i < argc; i++)		bufPtr = writeOne(the, i2c, &xsArg(i), bufPtr, buffer + sizeof(buffer));	FskPinI2CSetAddress(i2c->pin, i2c->address);	err = FskPinI2CWriteBytes(i2c->pin, bufPtr - buffer, buffer);    xsThrowDiagnosticIfFskErr(err, "I2C FskI2CWriteBlock failed with error %s %s.", FskInstrumentationGetErrorString(err), i2c->diagnosticID);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:19,


示例13: xsToolIsKPR

void xsToolIsKPR(xsMachine* the){	char* aPath;	FILE* aFile = NULL;	size_t aSize = 1024;	char aBuffer[1024];	aPath = xsToString(xsArg(0));	aFile = fopen(aPath, "r");	xsElseError(aFile);	aSize = fread(aBuffer, 1, aSize, aFile);	if (aSize) {		aBuffer[aSize - 1] = 0;		xsResult = (strstr(aBuffer, "xmlns=/"http://www.kinoma.com/kpr/1/"") && !strstr(aBuffer, "<application") && !strstr(aBuffer, "<device")) ? xsTrue : xsFalse;	}	else		xsResult = xsFalse;	fclose(aFile);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:20,


示例14: KPR_system_setClipboardText

void KPR_system_setClipboardText(xsMachine* the){	HWND window = (HWND)FskWindowGetNativeWindow(gShell->window);	xsStringValue string, src, buffer, dst;	char c;	xsIntegerValue length;	HGLOBAL data;	if (OpenClipboard(window)) {		EmptyClipboard(); 		if (xsToInteger(xsArgc) > 0) {			string = xsToString(xsArg(0));			src = string;			length = 0;			while ((c = *src++)) {				length++;				if (c == 10)					length++;			}			length++;			if (FskMemPtrNew(length, &buffer) == kFskErrNone) {				src = string;				dst = buffer;				while ((c = *src++)) {					if (c == 10)						*dst++ = 13;					*dst++ = c;				}				*dst = 0;				length = MultiByteToWideChar(CP_UTF8, 0, buffer, -1, NULL, 0);				data = GlobalAlloc(GMEM_MOVEABLE, 2 * length);				if (data) {					MultiByteToWideChar(CP_UTF8, 0, buffer, -1, (LPWSTR)GlobalLock(data), length);					GlobalUnlock(data);					SetClipboardData(CF_UNICODETEXT, data);				}				FskMemPtrDispose(buffer);			}		}		CloseClipboard();	}}
开发者ID:basuke,项目名称:kinomajs,代码行数:41,


示例15: xsToolInsertProperty

void xsToolInsertProperty(xsMachine* the){	xsStringValue aString;	xsIntegerValue aSum;	aString = xsToString(xsArg(0));	aSum = 0;	while(*aString != 0) {		aSum = (aSum << 1) + *aString++;	}	aSum &= 0x7FFFFFFF;	xsResult = gxProperties[aSum % mxPropertyModulo];	if (xsTypeOf(xsResult) == xsReferenceType)		(void)xsCall3(xsResult, xsID("insertProperty"), xsArg(0), xsArg(1), xsArg(2));	else {		gxProperties[aSum % mxPropertyModulo] = xsArg(1);		xsSet(xsArg(1), xsID("qualifiedName"), xsArg(0));	}	}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:19,


示例16: xs_wdt_start

voidxs_wdt_start(xsMachine *the){    int index = xsToInteger(xsArg(0));    WDT_Config_Type cfg;    cfg.timeoutVal = index;    cfg.mode = WDT_MODE_RESET;    cfg.resetPulseLen = WDT_RESET_PULSE_LEN_2;    WDT_Init(&cfg);    CLK_ModuleClkEnable(CLK_WDT);#if defined(CONFIG_CPU_MW300)    /* For 88MW300, APB1 bus runs at 50MHz whereas for 88MC200 it runs at     * 25MHz, hence following clk divider is added to keep timeout same.     */    CLK_ModuleClkDivider(CLK_WDT, 1);#endif    WDT_Enable();    wdt_enable = 1;}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:21,


示例17: xs_dbg_report

voidxs_dbg_report(xsMachine *the){	if (xsToInteger(xsArgc) > 0 && xsTest(xsArg(0))) {		/* silence - return the memory use */		xsMemoryUse slot, chunk;		xsReportMemoryUse(the, &slot, &chunk);		xsVars(1);		xsResult = xsNewInstanceOf(xsObjectPrototype);		xsSetInteger(xsVar(0), chunk.current);		xsSet(xsResult, xsID("chunk"), xsVar(0));		xsSetInteger(xsVar(0), slot.current);		xsSet(xsResult, xsID("slot"), xsVar(0));	}	else {#if mxMC		mc_mstats(true);#endif		xsReportMemoryUse(the, NULL, NULL);	}}
开发者ID:basuke,项目名称:kinomajs,代码行数:21,


示例18: KPR_canvasRenderingContext2D_isPointInPathStroke

void KPR_canvasRenderingContext2D_isPointInPathStroke(xsMachine *the){	FskCanvas2dContext	ctx			= xsGetHostData(xsThis);	FskCanvas2dPath		path		= NULL;	xsNumberValue		x, y;	if (xsIsInstanceOf(xsArg(0), xsGet(xsGet(xsGlobal, xsID_KPR), xsID("path2D")))) {	/* ctx.isPointInPathStroke(path, x, y) */		path = xsGetHostData(xsArg(0));		x = xsToNumber(xsArg(1));		y = xsToNumber(xsArg(2));	} else {																			/* ctx.isPointInPathStroke(x, y) */		x = xsToNumber(xsArg(0));		y = xsToNumber(xsArg(1));	}	xsResult = xsBoolean(FskCanvas2dIsPointInPathStroke(ctx, path, x, y));}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:16,


示例19: KPR_system_networkInterfaceIndexToName

void KPR_system_networkInterfaceIndexToName(xsMachine* the){	SInt32 index = xsToInteger(xsArg(0));	PIP_ADAPTER_ADDRESSES pAddresses = NULL, pAddress;	ULONG flags = GAA_FLAG_INCLUDE_PREFIX;	ULONG family = AF_INET;	ULONG outBufLen = sizeof(IP_ADAPTER_ADDRESSES);	BAIL_IF_ERR(FskMemPtrNewClear(outBufLen, &pAddresses));	if (GetAdaptersAddresses(family, flags, NULL, pAddresses, &outBufLen) == ERROR_BUFFER_OVERFLOW) {		FskMemPtrDispose(pAddresses);		BAIL_IF_ERR(FskMemPtrNewClear(outBufLen, &pAddresses));	}	if (GetAdaptersAddresses(family, flags, NULL, pAddresses, &outBufLen) == NO_ERROR) {		for (pAddress = pAddresses; pAddress; pAddress = pAddress->Next)			if (pAddress->IfIndex == index) break;	}	if (pAddress)		xsResult = xsString(pAddress->AdapterName);bail:	FskMemPtrDispose(pAddresses);	return;}
开发者ID:basuke,项目名称:kinomajs,代码行数:22,


示例20: KPR_canvasRenderingContext2D_putImageData

void KPR_canvasRenderingContext2D_putImageData(xsMachine *the){	FskCanvas2dContext ctx = xsGetHostData(xsThis);	FskCanvas2dImageData data = xsGetHostData(xsArg(0));	xsNumberValue dx = xsToNumber(xsArg(1));	xsNumberValue dy = xsToNumber(xsArg(2));	xsNumberValue dirtyX, dirtyY, dirtyWidth, dirtyHeight;	if (xsToInteger(xsArgc) > 6) {		dirtyX = xsToNumber(xsArg(3));		dirtyY = xsToNumber(xsArg(4));		dirtyWidth = xsToNumber(xsArg(5));		dirtyHeight = xsToNumber(xsArg(6));	}	else {		dirtyX = 0;		dirtyY = 0;		dirtyWidth = data->width;		dirtyHeight = data->height;	}	FskCanvas2dPutImageData(ctx, data, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:21,


示例21: KPR_WebSocketClient

void KPR_WebSocketClient(xsMachine* the){	FskErr err;	xsIntegerValue c = xsToInteger(xsArgc);	KPR_WebSocketClientRecord *self = NULL;	KprWebSocketEndpoint endpoint = NULL;		bailIfError(FskMemPtrNewClear(sizeof(KPR_WebSocketClientRecord), &self));		xsThrowIfFskErr(KprWebSocketEndpointNew(&endpoint, self));		endpoint->openCallback = KPR_WebSocketClient_onOpen;	endpoint->closeCallback = KPR_WebSocketClient_onClose;	endpoint->textCallback = KPR_WebSocketClient_onTextMessage;	endpoint->binaryCallback = KPR_WebSocketClient_onBinaryMessage;	endpoint->errorCallback = KPR_WebSocketClient_onError;		self->endpoint = endpoint;	self->the = the;	self->slot = xsThis;	self->code = the->code;	xsSetHostData(self->slot, self);	// xsCall1(xsGet(xsGlobal, xsID_Object), xsID_seal, self->slot);		if (c >= 1) {		bailIfError(KprWebSocketEndpointConnect(endpoint, xsToString(xsArg(0)), NULL));	}	xsRemember(self->slot);	return;	bail:	KprWebSocketEndpointDispose(endpoint);	FskMemPtrDispose(self);	xsThrowIfFskErr(err);}
开发者ID:kouis3940,项目名称:kinomajs,代码行数:37,


示例22: KPR_debug_toggle

void KPR_debug_toggle(xsMachine *the){	KprDebug self = xsGetHostData(xsThis);	KprDebugMachine machine = NULL;	int command = mxNoCommand;	char* path = NULL;	char* value = NULL;	xsIntegerValue c = xsToInteger(xsArgc);	if ((c >= 4) && (xsTypeOf(xsArg(0)) == xsStringType) && (xsTypeOf(xsArg(1)) == xsIntegerType) && (xsTypeOf(xsArg(3)) == xsStringType)) {		char* address = xsToString(xsArg(0));		command = xsToInteger(xsArg(1));		if (xsTypeOf(xsArg(2)) == xsStringType)			path = FskStrDoCopy(xsToString(xsArg(2)));		value = FskStrDoCopy(xsToString(xsArg(3)));		machine = KprDebugFindMachine(self, address);	}	if (machine && ((command == mxLocalsView) || (command == mxGlobalsView) || (command == mxGrammarsView)) && value)		KprDebugMachineDispatchCommand(machine, command, path, value, 0);	else		xsThrowIfFskErr(kFskErrInvalidParameter);	FskMemPtrDispose(value);	FskMemPtrDispose(path);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:23,


示例23: kpr2jsMakePath

void kpr2jsMakePath(xsMachine* the){    char aPath[1024];    int aLength;    char* aString;    aPath[0] = 0;    if (xsTypeOf(xsArg(0)) == xsStringType) {        aString = xsToString(xsArg(0));        aLength = strlen(aString);        if (aLength > 0) {            strcat(aPath, aString);            if (aPath[aLength - 1] != mxSeparator) {                aPath[aLength] = mxSeparator;                aPath[aLength + 1] = 0;            }        }    }    if (xsTypeOf(xsArg(1)) == xsStringType) {        aString = xsToString(xsArg(1));        strcat(aPath, aString);    }    if (xsTypeOf(xsArg(2)) == xsStringType) {        aString = xsToString(xsArg(2));        aLength = strlen(aString);        if (aLength > 0) {            if (aString[0] != '.')                strcat(aPath, ".");            strcat(aPath, aString);        }    }#if mxWindows    aString = aPath;    while (*aString) {        if (*aString == '/')            *aString = '//';        aString++;    }#endif    xsResult = xsString(aPath);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:41,


示例24: Zeroconf_Advertisement

void Zeroconf_Advertisement(xsMachine *the){	KprZeroconfAdvertisement self = NULL;	char* serviceType = xsToString(xsArg(0));	char* servicName = xsToString(xsArg(1));	int servicPort = xsToInteger(xsArg(2));	xsIntegerValue c = xsToInteger(xsArgc);	FskAssociativeArray txt = NULL;	if ((c > 3) && xsIsInstanceOf(xsArg(3), xsObjectPrototype)) {		xsVars(2);		xsEnterSandbox();		fxPush(xsArg(3));		fxRunForIn(the);		txt = FskAssociativeArrayNew();		for (xsVar(0) = fxPop(); xsTypeOf(xsVar(0)) != xsNullType; xsVar(0) = fxPop()) {			if (xsTypeOf(xsVar(0)) == xsStringType) {				xsVar(1) = xsGetAt(xsArg(3), xsVar(0));				if (!xsIsInstanceOf(xsVar(1), xsObjectPrototype)) {					char* name = xsToString(xsVar(0));					char* value = xsToString(xsVar(1));					FskAssociativeArrayElementSetString(txt, name, value);				}			}		}		xsLeaveSandbox();	}	xsThrowIfFskErr(KprZeroconfAdvertisementNew(&self, serviceType, servicName, servicPort, txt));	xsSetHostData(xsResult, self);	self->registeredCallback = Zeroconf_advertisement_registeredCallback;	self->unregisteredCallback = Zeroconf_advertisement_unregisteredCallback;	self->the = the;	self->slot = xsResult;	self->code = the->code;	self->behavior = xsUndefined;	xsRemember(self->slot);}
开发者ID:kouis3940,项目名称:kinomajs,代码行数:36,


示例25: KPR_mqttclient_connect

void KPR_mqttclient_connect(xsMachine* the){	KPR_MQTTClientRecord *self = xsGetHostData(xsThis);	char *host;	UInt16 port;	KprMQTTClientConnectOptions options;	if (xsToInteger(xsArgc) != 10) xsThrowIfFskErr(kFskErrParameterError);	host = xsToString(xsArg(0));	port = xsToInteger(xsArg(1));	options.isSecure = xsToBoolean(xsArg(2));	options.keepAlive = xsToInteger(xsArg(3));	options.username = xsTest(xsArg(4)) ? xsToString(xsArg(4)) : NULL;	options.password = xsTest(xsArg(5)) ? xsToString(xsArg(5)) : NULL;	options.willIsRetained = false;	options.willQualityOfService = 0;	options.willTopic = NULL;	options.willPayload = NULL;	options.willPayloadLength = 0;	if (xsTest(xsArg(6))) {		options.willTopic = xsToString(xsArg(6));		options.willQualityOfService = xsToInteger(xsArg(7));		options.willIsRetained = xsToBoolean(xsArg(8));		if (xsTest(xsArg(9))) {			if (isArrayBuffer(xsArg(9))) {				options.willPayload = xsToArrayBuffer(xsArg(9));				options.willPayloadLength = xsGetArrayBufferLength(xsArg(9));			} else {				options.willPayload = xsToString(xsArg(9));				options.willPayloadLength = FskStrLen(options.willPayload);			}		}	}	xsThrowIfFskErr(KprMQTTClientConnect(self->client, host, port, &options));}
开发者ID:Kazu-zamasu,项目名称:kinomajs,代码行数:40,


示例26: xs_x509_decodeSubjectKeyId

voidxs_x509_decodeSubjectKeyId(xsMachine *the){	UInt32 sz = xsToInteger(xsGet(xsArg(0), xsID("length")));	unsigned char *p = xsGetHostData(xsArg(0)), *endp = p + sz, *endTBS, *endEXT, *extnID, *spki, *spk;	int l, extnIDLen, spkLen;	static UInt8 id_ce_ski[] = {2 * 40 + 5, 29, 14};	/* [2, 5, 29, 14] */#define getTag()	(p < endp ? (int)*p++ : -1)#define getBerLen()	_getBerLen(&p, endp)#define nextTag()	(getTag(), l = getBerLen(), p += l)	if (getTag() != 0x30)		return;	if ((l = getBerLen()) < 0)		return;	if (p + l > endp)		return;	/* TBSCertficate */	if (getTag() != 0x30)		return;	if ((l = getBerLen()) < 0)		return;	if ((endTBS = p + l) > endp)		return;	if (*p & 0x80) {		/* EXPLICT Version */		p++;		nextTag();	}	nextTag();	/* serialNumber */	nextTag();	/* signature */	nextTag();	/* issuer */	nextTag();	/* validity */	nextTag();	/* subject */	spki = p;	/* subjectPublicKeyInfo */	nextTag();	/* OPTIONAL */	while (p < endTBS) {		int tag = getTag();		if ((l = getBerLen()) < 0)			return;		switch (tag & 0x1f) {		case 1:	/* issuerUniqueID */		case 2:	/* subjectUniqueID */			p += l;			continue;	/* goto the next tag */		case 3:	/* extensions */			break;	/* fall thru */		default:			return;		}		/* must be a SEQUENCE of [1..MAX] */		if (getTag() != 0x30)			return;		if ((l = getBerLen()) < 0)			return;		endEXT = p + l;		while (p < endEXT) {			/* must be a SEQUENCE of {extnID, critical, extnValue} */			if (getTag() != 0x30)				return;			if ((l = getBerLen()) < 0)				return;			/* extnID: OBJECT ID */			if (getTag() != 0x06)				return;			if ((extnIDLen = getBerLen()) < 0)				return;			extnID = p;			p += extnIDLen;			/* critical: BOOLEAN */			if (*p == 0x01)				nextTag();			/* extnValue: OCTET STRING */			if (getTag() != 0x04)				return;			if ((l = getBerLen()) < 0)				return;			if (extnIDLen == sizeof(id_ce_ski) && FskMemCompare(extnID, id_ce_ski, extnIDLen) == 0) {				/* SKI: OCTET STRING */				if (getTag() != 0x04)					return;				l = getBerLen();				xsResult = xsNew1(xsGlobal, xsID("Chunk"), xsInteger(l));				FskMemCopy(xsGetHostData(xsResult), p, l);				return;			}			p += l;		}	}	{		/*		 * Couldn't find Subject Key Identifier. Make up the ID from the Subject Public Key		 */		struct sha1 sha1;		p = spki;		if (getTag() != 0x30)			return;	/* should be a SEQUENCE *///.........这里部分代码省略.........
开发者ID:Kazu-zamasu,项目名称:kinomajs,代码行数:101,


示例27: console_log

void console_log(xsMachine* the){	xsIntegerValue c = xsToInteger(xsArgc), i;	xsBooleanValue space = 0;	xsVars(4);	console_log_depth++;	for (i = 0; i < c; i++) {		if (space)			fprintf(stdout,  " ");		else			space = 1;		switch (xsTypeOf(xsArg(i))) {		case xsUndefinedType:		case xsNullType:		case xsBooleanType:		case xsIntegerType:		case xsNumberType:			fprintf(stdout,  "%s", xsToString(xsArg(i)));			break;		case xsSymbolType:			xsResult = xsCall1(xsGlobal, xsID("String"), xsArg(i));			fprintf(stdout,  "%s", xsToString(xsResult));			break;		case xsStringType:		case xsStringXType:			if ((console_log_depth == 1) && (i == 0))				fprintf(stdout,  "%s", xsToString(xsArg(i)));			else				fprintf(stdout,  "'%s'", xsToString(xsArg(i)));			break;		case xsReferenceType:			if (console_log_depth < 3) {				xsBooleanValue comma = 0;				if (xsHas(xsArg(i), xsID("length"))) {					xsIntegerValue length = xsToInteger(xsGet(xsArg(i), xsID("length"))), index;					fprintf(stdout,  "[");					for (index = 0; index < length; index++) {						if (comma)							fprintf(stdout,  ",");						else							comma = 1;						fprintf(stdout,  " ");						if (xsHas(xsArg(i), (xsIndex)index)) {							xsVar(1) = xsGet(xsArg(i), (xsIndex)index);							fxPush(xsVar(1));							fxPushCount(the, 1);							fxPush(xsThis);							fxPush(xsFunction);							fxCall(the);						}					}					fprintf(stdout,  " ]");				}				else {					fprintf(stdout,  "{");					xsVar(0) = xsEnumerate(xsArg(i));					for (;;) {						xsVar(1) = xsCall0(xsVar(0), xsID("next"));						if (xsTest(xsGet(xsVar(1), xsID("done"))))							break;						xsVar(2) = xsGet(xsVar(1), xsID("value"));						xsVar(3) = xsGetAt(xsArg(i), xsVar(2));						if (comma)							fprintf(stdout,  ",");						else							comma = 1;						fprintf(stdout,  " %s: ", xsToString(xsVar(2)));						fxPush(xsVar(3));						fxPushCount(the, 1);						fxPush(xsThis);						fxPush(xsFunction);						fxCall(the);					}					fprintf(stdout,  " }");				}			}			else				fprintf(stdout,  "%s", xsToString(xsArg(i)));			break;		}	}	console_log_depth--;	if (!console_log_depth)		fprintf(stdout,  "/n");}
开发者ID:basuke,项目名称:kinomajs,代码行数:85,


示例28: process_getenv

void process_getenv(xsMachine* the){	xsStringValue result = getenv(xsToString(xsArg(0)));	if (result)		xsResult = xsString(result);}
开发者ID:basuke,项目名称:kinomajs,代码行数:6,


示例29: print

void print(xsMachine* the){	fprintf(stdout, "%s/n", xsToString(xsArg(0)));}
开发者ID:basuke,项目名称:kinomajs,代码行数:4,


示例30: kpr2jsOpenFile

void kpr2jsOpenFile(xsMachine* the){    FILE* aFile = fopen(xsToString(xsArg(0)), "w");    xsElseError(aFile);    xsSetHostData(xsThis, aFile);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:6,



注:本文中的xsArg函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ xsGet函数代码示例
C++ xs函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。