当前位置: 首页>>代码示例>>C++>>正文


C++ VALID_IDX函数代码示例

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


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

示例1: chunk_encode_copy

void chunk_encode_copy(chunk dst,chunk src,char esc){
	chunk_len k=0;
	for(chunk_len i=0;i<src.len;i++){
		if (isprint((unsigned char)src.data[i])) {
			if (src.data[i]==esc){
				VALID_IDX(k+1,dst);
				dst.data[k]=esc;
				dst.data[k+1]=esc;
				k+=2;
				VALID_IDX(k,dst);
			} else {
				VALID_IDX(k,dst);
				dst.data[k]=src.data[i];
				k++;
			}
		} else {
			VALID_IDX(k+2,dst);
			dst.data[k]=esc;
			dst.data[k+1]=HEX[(src.data[i]>>4)&(char)0x0F];
			dst.data[k+2]=HEX[src.data[i]&(char)0x0F];
			k+=3;
		}
	}
	if(k<dst.len) {
		dst.data[k]=0;
	}
}
开发者ID:Meijuh,项目名称:ltsmin,代码行数:27,代码来源:chunk_support.c

示例2: eEnt_func42

/* #[<ENTRY_FUNC>]# eEnt_func42
 * name:         eEnt_func42
 * global_name:  tSimpleServer_eEnt_func42
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func42(CELLIDX idx, char_t** msg)
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	//	static  char_t  *MSG[8] = { "Hallo", "this", "is", "nice", "day", "isn't", "it", "?" };
	char_t  *MSG[8] = { "Hallo", "this", "is", "nice", "day", "isn't", "it", "?" };
	int_t	i;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */
	for( i = 0; i < 8; i++ )
		strcpy( msg[i], MSG[i] );
	for( i = 0; i < 8; i++ ){
		printf( "M %d %s\n", i, MSG[i] );
		printf( "m %d %08X %s\n", i, msg[i], msg[i] );
	}

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:30,代码来源:tSimpleServer.c

示例3: eEnt_func43

/* #[<ENTRY_FUNC>]# eEnt_func43
 * name:         eEnt_func43
 * global_name:  tSimpleServer_eEnt_func43
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func43(CELLIDX idx, STA* sta, int32_t len)
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	int_t	i;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */
	for( i = 0; i < len; i++ ){
		syslog( LOG_INFO, " sta[%d].a=%d, sta[%d].b=%d", i, sta[i].a, i, sta[i].b );
	}

	for( i = 0; i < len; i++ ){
		int32_t		a, b;
		a = sta[i].a;
		b = sta[i].b;
		sta[i].a = b;
		sta[i].b = a;
	}

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:33,代码来源:tSimpleServer.c

示例4: eEnt_func35

/* #[<ENTRY_FUNC>]# eEnt_func35
 * name:         eEnt_func35
 * global_name:  tSimpleServer_eEnt_func35
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func35(CELLIDX idx, char_t*** msg, int32_t* len, int32_t* msglen)
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	static const char_t *MSG[] = { "Today", "is", "2010", "October", "10", "10-10-10" };
	int32_t i;

	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */

	printf( "&i=%08X\n", &i );
	*len = sizeof MSG / sizeof( char_t * );
	*msglen = 9;  // MSG[i] の最大長さ
	syslog( LOG_INFO, "func35: len=%d\n", *len );
	eEnt_func35_msg_alloc( sizeof MSG, (void **)msg );
	for( i = 0; i < *len; i++ ){
		eEnt_func35_msg_alloc( strlen(MSG[i])+1, (void **)&(*msg)[i] );
		strcpy((*msg)[i],MSG[i]);
	}

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:34,代码来源:tSimpleServer.c

示例5: eEnt_func36

/* #[<ENTRY_FUNC>]# eEnt_func36
 * name:         eEnt_func36
 * global_name:  tSimpleServer_eEnt_func36
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func36(CELLIDX idx, STA** sta, int32_t* len)
{
	ER		ercd = E_OK;
	int_t   i;
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

#define N_STA  (5)
	/* ここに処理本体を記述します #_TEFB_# */
	*len = N_STA;
	eEnt_func36_sta_alloc( N_STA * sizeof(STA), (void**)sta );
	for( i = 0; i < N_STA; i++ ){
		(*sta)[i].a = i + 1;
		(*sta)[i].b = - i - 1;
#define	FUNC36_MSG	"have a nice day!"
		(*sta)[i].len = (*sta)[i].count = sizeof FUNC36_MSG;
		eEnt_func36_sta_alloc( sizeof(FUNC36_MSG), (void**)&(*sta)[i].msg );
		strcpy( (*sta)[i].msg, FUNC36_MSG );
	}

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:33,代码来源:tSimpleServer.c

示例6: eEnt_func37

/* #[<ENTRY_FUNC>]# eEnt_func37
 * name:         eEnt_func37
 * global_name:  tSimpleServer_eEnt_func37
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func37(CELLIDX idx, STA*** sta, int32_t* len)
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	int_t	i;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */
#define STA_LEN	3
#define	FUNC37_MSG	"Welcome to TECS"
	*len = STA_LEN;
	eEnt_func37_sta_alloc( sizeof(STA*)*STA_LEN, (void **)sta );
	for( i = 0; i < STA_LEN; i++ ){
		eEnt_func37_sta_alloc( sizeof(STA), (void **)&(*sta)[i] );
		(*sta)[i]->a = ( i + 1 ) * ( i + 1 );
		(*sta)[i]->b = ( i + 1 ) * ( i + 1 ) * ( i + 1 );
		eEnt_func37_sta_alloc( sizeof FUNC37_MSG, (void **)&(*sta)[i]->msg );
		(*sta)[i]->len = (*sta)[i]->count = sizeof FUNC37_MSG;
	}

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:33,代码来源:tSimpleServer.c

示例7: eiSIOCBR_readySend

/*
 *  シリアルポートからの送信可能コールバック(受け口関数)
 */
void
eiSIOCBR_readySend(CELLIDX idx)
{
	CELLCB	*p_cellcb;

	assert(VALID_IDX(idx));
	p_cellcb = GET_CELLCB(idx);
	if (VAR_receiveFlowControl != '\0') {
		/*
		 *  START/STOP を送信する.
		 */
		(void) cSIOPort_putChar(VAR_receiveFlowControl);
		VAR_receiveFlowControl = '\0';
	}
	else if (!VAR_sendStopped && VAR_sendCount > 0U) {
		/*
		 *  送信バッファ中から文字を取り出して送信する.
		 */
		(void) cSIOPort_putChar(VAR_sendBuffer[VAR_sendReadPointer]);
		INC_PTR(VAR_sendReadPointer, ATTR_sendBufferSize);
		if (VAR_sendCount == ATTR_sendBufferSize) {
			if (ciSendSemaphore_signal() < 0) {
				VAR_errorFlag = true;
			}
		}
		VAR_sendCount--;
	}
	else {
		/*
		 *  送信すべき文字がない場合は,送信可能コールバックを禁止する.
		 */
		cSIOPort_disableCBR(SIOSendReady);
	}
}
开发者ID:morioka,项目名称:toppers-asp3-for-linux,代码行数:37,代码来源:tSerialPortMain.c

示例8: eDev_Receive

/* #[<ENTRY_FUNC>]# eDev_Receive
 * name:         eDev_Receive
 * global_name:  tDev_eDev_Receive
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eDev_Receive(CELLIDX idx, int8_t** buf, int32_t* len)
{
	ER		ercd = E_OK;
	int32_t i;
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */
	{
#define LEN   100
		int32_t  i, len = LEN;
		int8_t   *buf;

		cCB_Send_buf_alloc( len, (void **)&buf );
		for( i = 0; i < len; i++ )
			buf[ i ] = ( i + 1 ) * 2;
		syslog( LOG_INFO, "tDev: eDev_Receive: calling cCB_Send(len=%d)", len );
		cCB_Send( buf, len );
	}

	*len = 128;
	eDev_Receive_buf_alloc( *len, (void **)buf );
	for( i = 0; i < *len; i++ )
		(*buf)[ i ] = i * i;
	syslog( LOG_INFO, "tDev: eDev_Receive: Exit (*len=%d)", *len );

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:39,代码来源:tDev.c

示例9: eEnt_func39

/* #[<ENTRY_FUNC>]# eEnt_func39
 * name:         eEnt_func39
 * global_name:  tSimpleServer_eEnt_func39
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func39(CELLIDX idx, STA*(** arraySt)[ArraySizeSTA])
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	STA			sta[ArraySizeSTA] = { { 11, 121 }, { 13, 169 } };
	char_t		*msg[ArraySizeSTA] = { "hello!! func39-0", "hello!! func39-1" };
	int		i;

	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */
	eEnt_func39_arraySt_alloc( sizeof(STA *)*ArraySizeSTA, (void **)arraySt );
	for( i = 0; i < ArraySizeSTA; i++ ){

		eEnt_func39_arraySt_alloc( sizeof(STA ), (void **)&(**arraySt)[i] );
		(**arraySt)[i]->a = sta[i].a;
		(**arraySt)[i]->b = sta[i].b;
		(**arraySt)[i]->len = (**arraySt)[i]->count = strlen( msg[i] ) + 1;
		eEnt_func39_arraySt_alloc( (**arraySt)[i]->len, (void **)&(**arraySt)[i]->msg );
		strncpy( (**arraySt)[i]->msg, msg[i], (**arraySt)[i]->len );
	}

	return(ercd);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:35,代码来源:tSimpleServer.c

示例10: eSerialPort_close

/*
 *  シリアルポートのクローズ(受け口関数)
 */
ER
eSerialPort_close(CELLIDX idx)
{
	CELLCB	*p_cellcb;
	ER		ercd;
	bool_t	eflag = false;

	if (sns_dpn()) {				/* コンテキストのチェック */
		return(E_CTX);
	}
	if (!VALID_IDX(idx)) {
		return(E_ID);				/* ポート番号のチェック */
	}
	p_cellcb = GET_CELLCB(idx);

	SVC(dis_dsp(), gen_ercd_sys(p_cellcb));
	if (!VAR_openFlag) {			/* オープン済みかのチェック */
		ercd = E_OBJ;
	}
	else {
		/*
		 *  ハードウェア依存のクローズ処理
		 */
		if (loc_cpu() < 0) {
			eflag = true;
		}
		cSIOPort_close();
		VAR_openFlag = false;
		if (unl_cpu() < 0) {
			eflag = true;
		}

		/*
		 *  セマフォの初期化
		 */
		if (cSendSemaphore_initialize() < 0) {
			eflag = true;
		}
		if (cReceiveSemaphore_initialize() < 0) {
			eflag = true;
		}

		/*
		 *  エラーコードの設定
		 */
		if (eflag) {
			ercd = gen_ercd_sys(p_cellcb);
		}
		else {
			ercd = E_OK;
		}
	}
	SVC(ena_dsp(), gen_ercd_sys(p_cellcb));

  error_exit:
	return(ercd);
}
开发者ID:morioka,项目名称:toppers-asp3-for-linux,代码行数:60,代码来源:tSerialPortMain.c

示例11: ka_del_sem

/*
 * name:         ka_del_sem
 * global_name:  tKernel_ka_del_sem
 */
ER       ka_del_sem( tKernel_IDX idx, ID id)
{
  struct tag_tKernel_CB *this;
  if( VALID_IDX( idx ) ){
    this = tKernel_GET_CELLCB(idx);
  }else{
     /* エラー処理コードをここに記述 */
  }
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:13,代码来源:tKernel_templ.c

示例12: eSerialPort_read

/*
 *  シリアルポートからの文字列受信(受け口関数)
 */
ER_UINT
eSerialPort_read(CELLIDX idx, char *buffer, uint_t length)
{
	CELLCB	*p_cellcb;
	bool_t	buffer_empty;
	uint_t	reacnt = 0U;
	char	c = '\0';		/* コンパイラの警告を抑止するために初期化する */
	ER		ercd, rercd;

	if (sns_dpn()) {				/* コンテキストのチェック */
		return(E_CTX);
	}
	if (!VALID_IDX(idx)) {			/* ポート番号のチェック */
		return(E_ID);
	}

	p_cellcb = GET_CELLCB(idx);
	if (!VAR_openFlag) {			/* オープン済みかのチェック */
		return(E_OBJ);
	}
	if (VAR_errorFlag) {			/* エラー状態かのチェック */
		return(E_SYS);
	}

	buffer_empty = true;			/* ループの1回めはwai_semする */
	while (reacnt < length) {
		if (buffer_empty) {
			SVC(rercd = cReceiveSemaphore_wait(),
										gen_ercd_wait(rercd, p_cellcb));
		}
		SVC(rercd = serialPort_readChar(p_cellcb, &c), rercd);
		*buffer++ = c;
		reacnt++;
		buffer_empty = (bool_t) rercd;

		/*
		 *  エコーバック処理.
		 */
		if ((VAR_ioControl & IOCTL_ECHO) != 0U) {
			SVC(rercd = cSendSemaphore_wait(),
										gen_ercd_wait(rercd, p_cellcb));
			SVC(rercd = serialPort_writeChar(p_cellcb, c), rercd);
			if (!((bool_t) rercd)) {
				SVC(cSendSemaphore_signal(), gen_ercd_sys(p_cellcb));
			}
		}
	}
	if (!buffer_empty) {
		SVC(cReceiveSemaphore_signal(), gen_ercd_sys(p_cellcb));
	}
	ercd = E_OK;

  error_exit:
	return(reacnt > 0U ? (ER_UINT) reacnt : ercd);
}
开发者ID:morioka,项目名称:toppers-asp3-for-linux,代码行数:58,代码来源:tSerialPortMain.c

示例13: eEnt_func

/* #[<ENTRY_FUNC>]# eEnt_func
 * name:         eEnt_func
 * global_name:  tCelltype2_eEnt_func
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
void
eEnt_func(CELLIDX idx)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}
	printf("Celltyp2 cellName %s\n",ATTR_cellName);
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:17,代码来源:tCelltype2.c

示例14: eEntry2_func2

/*
 * name:         eEntry2_func2
 * global_name:  tCell2_eEntry2_func2
 */
tecs_int32 eEntry2_func2( tCell2_IDX idx, tecs_int32 a)
{
  CELLCB      *p_cellcb;
  if( VALID_IDX( idx ) ){
    p_cellcb = tCell2_GET_CELLCB(idx);
  }else{
     /* エラー処理コードをここに記述 */
  }

  printf( "tCell2: eEntry2_func2( a=%d )\n", a );
  printf( "tCell2: eEntry2_func2: calling cCall2_func2( this, a=202 )\n" );
  cCall2_func2( 202 );
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:17,代码来源:tCell2.c

示例15: eEnt_func

/*
 * name:         eEnt_func
 * global_name:  tSingleCellOptimizeCaller_eEnt_func
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eEnt_func(CELLIDX idx)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */
	cCall_func();
}
开发者ID:NSaitoNmiri,项目名称:tecsgen,代码行数:19,代码来源:tSingleCellOptimizeCaller.c


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