示例#1
0
// 关闭server
void CWordServer::stopServices()
{
	m_netServer.Shutdown();
	dSleep(2000);
	CServerRoot::stopServices();

	// 各种底层的shutdown
	CLog::shutdown();
}
示例#2
0
/* asqlFreeDbfDes()
 *
 *************************************************************************/
_declspec(dllexport)  TS_CLIENT_CURSOR *asqlFreeDbfDes(TS_CLIENT_CURSOR *tscc, \
					void *df, \
					EXCHNG_BUF_INFO *exbuf )
{
    TS_COM_PROPS tscp;
    TS_CLIENT_CURSOR *tscpLast, *tscpHead;
    char  lpszResponse[4096];

    memset(&tscp, 0, sizeof(TS_COM_PROPS));

    tscpLast = NULL;
    tscpHead = tscc;
    while( tscc != NULL ) {
	if( tscc->p == (void *)df )
		    goto  agdr_dfTrueD;
	tscpLast = tscc;
	tscc = tscc->pNext;
    }
    df = NULL;
agdr_dfTrueD:

    if( df == NULL ) {
	tscp.packetType = 'R';
	tscp.msgType = 'E';
	tscp.len = 0;
	tscp.lp = -1;
	memcpy(lpszResponse, &tscp, sizeof(TS_COM_PROPS));
	SrvWriteExchngBuf(exbuf, lpszResponse, sizeof(TS_COM_PROPS));

	return  tscpHead;
    }

    if( wmtDbfIsLock((dFILE *)df) == 1 )
    { //if it is locked, unlock it.
	wmtDbfUnLock((dFILE *)df);
    }

    dSleep((dFILE *)df);
    if( tscpLast != NULL ) {
	tscpLast->pNext = tscc->pNext;
    } else {
	tscpHead = tscc->pNext;
    }
    free( tscc );

    tscp.packetType = 'R';
    tscp.msgType = 'D';
    tscp.len = 0;
    tscp.lp = 0;
    memcpy(lpszResponse, &tscp, sizeof(TS_COM_PROPS));
    SrvWriteExchngBuf(exbuf, lpszResponse, sizeof(TS_COM_PROPS));

    return  tscpHead;

} //end of asqlFreeDbfDes()
示例#3
0
/*
**-------------------------------------------------------------------------
** dbftotal()
** add table stored in dfs into table stored in dft. 
**------------------------------------------------------------------------*/
_declspec(dllexport) int dbftotal(char *szDft, char *szDfs)
{
    dFILE *dft, *dfs;

    dfs = dAwake( szDfs, DOPENPARA );
    if( dfs == NULL ) {
        return  -1;
    }

    dft = dAwake( szDft, DOPENPARA );
    if( dft == NULL ) {
        dSleep( dfs );
        return  -2;
    }

    dTableSum(dft, dfs);

    dSleep( dfs );
    dSleep( dft );

    return  1;

} //end of dbftotal()
示例#4
0
/* asqlGetDbfDes()
 * error: return: tscc
 *************************************************************************/
_declspec(dllexport) TS_CLIENT_CURSOR *asqlGetDbfDes(TS_CLIENT_CURSOR *tscc, LPSTR szDbName, LPSTR szTbName, \
					EXCHNG_BUF_INFO *exbuf)
{
    char 	buf[MAXPATH];
    dFILE 	*df;
    TS_CLIENT_CURSOR *tscc1;
    TS_COM_PROPS tscp;
    char  	lpszResponse[4096];

    memset(&tscp, 0, sizeof(TS_COM_PROPS));

    if( szDbName == NULL )
	szDbName = "";

    if( szDbName[0] != '\0' ) {
	char *sz;
	sz = GetCfgKey(csuDataDictionary, "DATABASE", szDbName, "PATH");
	if( sz != NULL ) {
	    strZcpy(buf, sz, MAXPATH);
	    beSurePath(buf);
	} else buf[0] = '\0';
    } else {
	strcpy(buf, asqlConfigEnv.szAsqlFromPath);
    }

    if( szTbName[1] == ':' || szTbName[0] == '\\' )
	strcpy(buf, szTbName);
    else
	strncat(buf, szTbName, MAXPATH-strlen(buf));

    dsetbuf(0);
    if( szDbName[0] != '\0' ) {
	strcpy(lpszResponse, szDbName);
	strcat(lpszResponse, "*");
	strcat(lpszResponse, buf);
    } else {
	strcpy(lpszResponse, buf);
    }

    df = dAwake(lpszResponse, DOPENPARA);
    if( df == NULL ) {
	tscp.packetType = 'R';
	tscp.msgType = 'E';
	tscp.len = 0;
	tscp.lp = -1;
	memcpy(lpszResponse, &tscp, sizeof(TS_COM_PROPS));

	SrvWriteExchngBuf(exbuf, lpszResponse, sizeof(TS_COM_PROPS));
	return  tscc;
    }

    //get the right string
    //check

    wmtDbfLock(df);

    tscp.packetType = 'R';
    tscp.msgType = 'D';
    tscp.len = (short)(min(df->headlen,4096-sizeof(TS_COM_PROPS)));
    tscp.lp = (long)df;
    memcpy(lpszResponse, &tscp, sizeof(TS_COM_PROPS));

    lseek(df->fp, 0, SEEK_SET);
    read(df->fp, lpszResponse+sizeof(TS_COM_PROPS), tscp.len);

    //set recnum to 0
    *(long *)&lpszResponse[sizeof(TS_COM_PROPS)+4] = 0;
    //clear firstDelRec
    *(long *)&lpszResponse[sizeof(TS_COM_PROPS)+12] = 0;

    wmtDbfUnLock(df);
    tscc1 = malloc(sizeof(TS_CLIENT_CURSOR));
    if( tscc1 == NULL ) {
	dSleep(df);
	tscp.msgType = 'E';
	SrvWriteExchngBuf(exbuf, lpszResponse, 4096);
	return  tscc;
    }
    tscc1->pNext = tscc;
    tscc1->p = df;
    tscc1->pType = 1;

    SrvWriteExchngBuf(exbuf, lpszResponse, 4096);

    return  tscc1;

} //end of asqlGetDbfDes()