MCPcopy Create free account
hub / github.com/defold/defold / New

Function New

engine/script/src/http_service.cpp:485–528  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

483 }
484
485 HHttpService New(const Params* params)
486 {
487 HttpService* service = new HttpService;
488
489 service->m_HttpCache = params->m_HttpCache;
490
491 int threadcount = params->m_ThreadCount;
492#if defined(__NX__)
493 if (threadcount > 2)
494 threadcount = 2;
495#endif
496
497 service->m_Run = true;
498 dmMessage::NewSocket(HTTP_SOCKET_NAME, &service->m_Socket);
499 service->m_Workers.SetCapacity(threadcount);
500 for (uint32_t i = 0; i < threadcount; ++i)
501 {
502 Worker* worker = new Worker();
503 char tmp[128];
504 dmSnPrintf(tmp, sizeof(tmp), "@__http_worker_%d", i);
505 dmMessage::NewSocket(tmp, &worker->m_Socket);
506 worker->m_Client = 0;
507 memset(&worker->m_CurrentURL, 0, sizeof(worker->m_CurrentURL));
508 memset(&worker->m_CurrentProxyURL, 0, sizeof(worker->m_CurrentProxyURL));
509 worker->m_Request = 0;
510 worker->m_Status = 0;
511 worker->m_Service = service;
512 worker->m_CacheFlusher = i == 0 && worker->m_Service->m_HttpCache != 0;
513 worker->m_Run = true;
514 worker->m_Canceled = 0;
515 worker->m_ReportProgress = false;
516 service->m_Workers.Push(worker);
517
518 dmThread::Thread t = dmThread::New(&Loop, THREAD_STACK_SIZE, worker, "http");
519 worker->m_Thread = t;
520 }
521
522 dmThread::Thread t = dmThread::New(&LoadBalancer, THREAD_STACK_SIZE, service, "http_balance");
523 service->m_Balancer = t;
524
525 service->m_ReportProgressCallback = params->m_ReportProgressCallback;
526
527 return service;
528 }
529
530 dmMessage::HSocket GetSocket(HHttpService http_service)
531 {

Callers 1

HandleRequestFunction · 0.70

Calls 4

NewSocketFunction · 0.85
dmSnPrintfFunction · 0.85
SetCapacityMethod · 0.45
PushMethod · 0.45

Tested by

no test coverage detected