示例#1
0
文件: process.c 项目: Ga-vin/sgos
uint WINAPI GetCurrentProcess()
{
	uint pid = GetCurrentProcessId();
	if( pid )
		return _CreateHandle( TYPE_PROCESS, pid );
	return 0;
}
示例#2
0
文件: thread.c 项目: Ga-vin/sgos
uint WINAPI GetCurrentThread()
{
	uint tid = GetCurrentThreadId();
	if( tid )
		return _CreateHandle( TYPE_THREAD, tid );
	return 0;
}
示例#3
0
    HttpTransactionHandle CreateRequest( const HttpRequest& request, const HttpTransaction::RequestCompleteCallback& callback, bool autoRelease=true )
    {
        std::lock_guard<std::mutex> lock(s_mutex);

        auto transaction = new HttpTransaction( callback, autoRelease );
     
        CURL* curl = transaction->GetCurl();
        curl_easy_setopt(curl, CURLOPT_URL, request.GetUrl() );
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &HttpClient::_OnResponse );
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, transaction );
        
        if( 0 < request.GetTimeout() )
        {
            curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, static_cast<long>(request.GetTimeout() * 1000) );
        }
        
        switch( request.GetMethodType() )
        {
            case HttpRequest::POST:
                curl_easy_setopt(curl, CURLOPT_POSTFIELDS, request.GetPostField());
                break;
                
            case HttpRequest::GET:
            default:
                break;
        }
        
        curl_multi_add_handle(m_MultiHandle, curl);
        
        auto handle = _CreateHandle();
        m_Handles[handle] = transaction;
        
        return HttpTransactionHandle( handle );
    }