Beispiel #1
0
//Add a download task to queue
void CCHttpRequest::addDownloadTask(std::vector<std::string> &urls, CCObject *pTarget, SEL_CallFuncND pSelector)
{
    bool init = lazyInitThreadSemphore();
    if (!init) {
        return;
    }
    
    if (0 == s_asyncRequestCount) {
        CCDirector::sharedDirector()->getScheduler()->scheduleSelector(schedule_selector(CCHttpRequest::httpRequestCallback), this, 0, false);
    }
    
    ++s_asyncRequestCount;
    if (pTarget) {
        pTarget->retain();
    }
    
    HttpRequestPacket *packet = new HttpRequestPacket();
    packet->reqType = kHttpRequestDownloadFile;
    packet->files = urls;
    packet->pTarget = pTarget;
    packet->pSelector = pSelector;
    
    pthread_mutex_lock(&s_requestQueueMutex);
    s_requestQueue->push(packet);
    pthread_mutex_unlock(&s_requestQueueMutex);
    
    sem_post(s_pSem);    
}
//Add a get task to queue
void CCHttpClient::send(CCHttpRequest* request)
{
    if (false == lazyInitThreadSemphore()) 
    {
        CCLOG( "CCHttpClient::send interapted (false == lazyInitThreadSemphore())" );
        return;
    }
    
    if (!request)
    {
        CCLOG( "CCHttpClient::send interapted (!request)" );
        return;
    }
        
    ++s_asyncRequestCount;
    
    request->retain();
        
    pthread_mutex_lock(&s_requestQueueMutex);
    s_requestQueue->addObject(request);
    pthread_mutex_unlock(&s_requestQueueMutex);
    
    // Notify thread start to work
    pthread_cond_signal(&s_SleepCondition);
}
Beispiel #3
0
//Add a post task to queue
void CCHttpRequest::addPostTask(std::string &url, std::string &postData, CCObject *pTarget, SEL_CallFuncND pSelector)
{
    bool init = lazyInitThreadSemphore();
    if (!init) {
        return;
    }
    
    if (0 == s_asyncRequestCount) {
        CCDirector::sharedDirector()->getScheduler()->scheduleSelector(schedule_selector(CCHttpRequest::httpRequestCallback), this, 0, false);
    }
    
    ++s_asyncRequestCount;
    if (pTarget) {
        pTarget->retain();
    }
    
    HttpRequestPacket *packet = new HttpRequestPacket();
    packet->reqType = kHttpRequestPost;
    packet->url = url;
    packet->reqData = postData;
    packet->pTarget = pTarget;
    packet->pSelector = pSelector;
    
    pthread_mutex_lock(&s_requestQueueMutex);
    s_requestQueue->push(packet);
    pthread_mutex_unlock(&s_requestQueueMutex);
    
    //Notify thread start to work
    sem_post(s_pSem);
}
Beispiel #4
0
//Add a get task to queue
void NetClient::postMessage(const char* buffer, size_t n, const NetResponseCallback& callback)
{    
    if (false == lazyInitThreadSemphore()) 
    {
        return;
    }

    ++asyncRequestCount;

    NetRequest* request = new NetRequest();
    request->setRequestData(buffer, n);
    request->setCallback(callback);
    // request->retain();

    this->requestqMtx.lock();
    this->requestq.push_back(request);
    this->requestqMtx.unlock();

    // Notify thread start to work
    this->sleepCondition.notify_one();
}
Beispiel #5
0
//Add a get task to queue
void HttpClient::send(HttpRequest* request)
{    
    if (false == lazyInitThreadSemphore()) 
    {
        return;
    }
    
    if (!request)
    {
        return;
    }
        
    request->retain();
    
    s_requestQueueMutex.lock();
    s_requestQueue->pushBack(request);
    s_requestQueueMutex.unlock();
    
    // Notify thread start to work
    s_SleepCondition.notify_one();
}
Beispiel #6
0
//Add a get task to queue
void CCHttpClient::send(CCHttpRequest* request)
{    
    if (false == lazyInitThreadSemphore()) 
    {
        return;
    }
    
    if (!request)
    {
        return;
    }
        
    ++s_asyncRequestCount;
    
    request->retain();
        
    pthread_mutex_lock(&s_requestQueueMutex);
    s_requestQueue->addObject(request);
    pthread_mutex_unlock(&s_requestQueueMutex);
    
    // Notify thread start to work
    sem_post(s_pSem);
}
 //Add a get task to queue
 void App42HttpClient::send(App42HttpRequest* request)
 {    
     if (false == lazyInitThreadSemphore()) 
     {
         return;
     }
     
     if (!request)
     {
         return;
     }
     
     //request->retain();
     
     if (nullptr != s_requestQueue) {
         s_requestQueueMutex.lock();
         s_requestQueue->push_back(request);
         s_requestQueueMutex.unlock();
         
         // Notify thread start to work
         s_SleepCondition.notify_one();
     }
 }
// Add a get task to queue
KDvoid CCHttpClient::send ( CCHttpRequest* pRequest )
{    
    if ( KD_FALSE == lazyInitThreadSemphore ( ) ) 
    {
        return;
    }
    
    if ( !pRequest )
    {
        return;
    }
        
    ++l_uAsyncRequestCount;
    
    pRequest->retain ( );
        
    kdThreadMutexLock ( l_pRequestQueueMutex );
    l_pRequestQueue->addObject ( pRequest );
    kdThreadMutexUnlock ( l_pRequestQueueMutex );
    
    // Notify thread start to work
    kdThreadCondSignal ( l_pSleepCondition );
}