Ejemplo n.º 1
0
uint WINAPI GetCurrentProcess()
{
	uint pid = GetCurrentProcessId();
	if( pid )
		return _CreateHandle( TYPE_PROCESS, pid );
	return 0;
}
Ejemplo n.º 2
0
Archivo: thread.c Proyecto: Ga-vin/sgos
uint WINAPI GetCurrentThread()
{
	uint tid = GetCurrentThreadId();
	if( tid )
		return _CreateHandle( TYPE_THREAD, tid );
	return 0;
}
Ejemplo n.º 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 );
    }