Ejemplo n.º 1
0
DWORD CUserFileObject::SetFilePointer( LONG lDistanceToMove, PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod )
{
	ULONGLONG ulNewFilePointer = 0;

	if( 1 == m_bValid )
	{
		m_rwLock.wlock();
		if( FILE_BEGIN == dwMoveMethod )
		{
			m_ulFilePointer = lDistanceToMove;
		}

		if( FILE_CURRENT == dwMoveMethod )
		{
			m_ulFilePointer += lDistanceToMove;
		}

		if( FILE_END == dwMoveMethod )
		{
			m_ulFilePointer = m_pMemFileObject->GetFileLength();
			m_ulFilePointer += lDistanceToMove;
		}

		ulNewFilePointer = m_ulFilePointer;
		m_rwLock.unlock();
	}

	return ulNewFilePointer;
}
Ejemplo n.º 2
0
BOOL CUserFileObject::ReadFile(  LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead )
{
	BOOL bRes = FALSE;

	if (lpNumberOfBytesRead)
	{
		*lpNumberOfBytesRead = 0;
	}

	if( 1 == m_bValid )
	{
		DWORD dwReadLen = 0;

		m_rwLock.wlock();

		bRes =  m_pMemFileObject->ReadFileData(lpBuffer, nNumberOfBytesToRead, &dwReadLen,m_ulFilePointer);

		if (lpNumberOfBytesRead)
		{
			*lpNumberOfBytesRead = dwReadLen;
		}
		
		m_ulFilePointer+=dwReadLen;

		m_rwLock.unlock();
	}
	return bRes;
}
Ejemplo n.º 3
0
BOOL CUserFileObject::WriteFile( LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten )
{
	BOOL bRes = FALSE;

	if (lpNumberOfBytesWritten)
	{
		*lpNumberOfBytesWritten = 0;
	}

	if( 1 == m_bValid )
	{
		DWORD dwWriteLen = 0;

		m_rwLock.wlock();

		bRes = m_pMemFileObject->WriteFileData(lpBuffer, nNumberOfBytesToWrite,&dwWriteLen,m_ulFilePointer);

		if (lpNumberOfBytesWritten)
		{
			*lpNumberOfBytesWritten = dwWriteLen;
		}

		m_ulFilePointer+=dwWriteLen;

		m_rwLock.unlock();
	}

	return bRes;
}
Ejemplo n.º 4
0
VOID CommonSetCookie(LPCSTR pchUrl,LPCSTR pchCookieData,BOOL bFromJs = FALSE)
{
	CCookieParser cookieParser;
	cookieParser.ParserCookieString(pchUrl,pchCookieData);
	
	if (g_pDB)
	{
		char *pcherrmsg = NULL;
		CStringA strSqlCmd;

		strSqlCmd.Format("replace into cookiedata (domain,path,cookiename,cookievalue,secure,httponly,session) values('%s','%s','%s','%s',%d,%d,%d)"
			,cookieParser.m_strDomain
			,cookieParser.m_strPath
			,cookieParser.m_strCookieName
			,cookieParser.m_strCookieValue
			,cookieParser.m_bSecure
			,cookieParser.m_bHttpOnly
			,cookieParser.m_bSessionCookie);

		DWORD dwTickStart = GetTickCount();


		Locker.wlock();

		/*ASSERT(*/sqlite3_exec(g_pDB,strSqlCmd,NULL,NULL,&pcherrmsg)/* == 0)*/;

		Locker.unlock();

		DWORD dwUseTime = GetTickCount() - dwTickStart;

		CStringA strMsgout;
		strMsgout.Format("插入Cookie 用时:%d\r\n",dwUseTime);
		OutputDebugStringA(strMsgout);



	}


}
Ejemplo n.º 5
0
	BOOL WriteFileData( LPCVOID lpBuffer, CONST DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,CONST ULONGLONG ulFilePointer  )
	{
		if(FALSE==CheckSafe()) return FALSE;
		m_rwLock.wlock();

		ULONGLONG ulPreMemLen = m_ulMemLen;

		ULONGLONG dwNeedExLen = 0;
		if ( m_ulMemLen < ulFilePointer+nNumberOfBytesToWrite )
		{
			dwNeedExLen = ulFilePointer+nNumberOfBytesToWrite - m_ulMemLen;
		}

		if ( dwNeedExLen > 0 )
		{
			if ( NULL == m_pMemBuf )
			{
				ULONGLONG ulAllocLen = ( dwNeedExLen/4096+1)*4096;
				m_pMemBuf = (BYTE *)malloc(ulAllocLen);
				m_ulMemLen = ulAllocLen;
			}
			else
			{
				ULONGLONG ulAllocLen = ( dwNeedExLen/4096+1)*4096+m_ulMemLen;
				m_pMemBuf = (BYTE *)realloc(m_pMemBuf,ulAllocLen);
				m_ulMemLen = ulAllocLen;
			}	
		}


		g_DebugLock.Lock();

		nCurMemUse+=(m_ulMemLen-ulPreMemLen);
		if (nCurMemUse > nMaxMemUse)
		{
			nMaxMemUse = nCurMemUse;
		}

#ifdef DEBUG
		CString strMsgOut;
		strMsgOut.Format(L"当前内存占用 %u 最大内存占用 %u\r\n",nCurMemUse,nMaxMemUse);
		OutputDebugStringW(strMsgOut);
		
		strMsgOut.Format(L"%d",GetCurrentProcessId());
		CString strTemp;
		strTemp.Format(L"%ul",nMaxMemUse);
		WritePrivateProfileStringW(L"MaxMemUse",strMsgOut,strTemp,L"C:\\MatrixDebug.log");
#endif
		g_DebugLock.UnLock();

		memcpy_s(m_pMemBuf+ulFilePointer,nNumberOfBytesToWrite,lpBuffer,nNumberOfBytesToWrite);

		m_ulFileLen = ulFilePointer+nNumberOfBytesToWrite;

		if(lpNumberOfBytesWritten)
		{
			*lpNumberOfBytesWritten = nNumberOfBytesToWrite;
		}

		m_rwLock.unlock();


		return TRUE;
	}