MCPcopy Create free account
hub / github.com/GameTechDev/PresentMon / Open

Method Open

IntelPresentMon/AppCef/source/SchemeFileHandler.cpp:25–63  ·  view source on GitHub ↗

Open the response stream | handle_request | result | description | ----------------------------------------------------------------------------------------------- | true | true | Handle the request immediately | | false | true | Decide at a later time. Execute callback to continue or ca

Source from the content-addressed store, hash-verified

23 // | true | false | Cancel the request immediately |
24 // | false | false | backwards compatibility. the ProcessRequest method will be called |
25 bool SchemeFileHandler::Open(CefRefPtr<CefRequest> request,
26 bool& handle_request,
27 CefRefPtr<CefCallback> callback)
28 {
29 handle_request = true;
30 CefURLParts url_parts;
31 if (!CefParseURL(request->GetURL(), url_parts))
32 {
33 pmlog_error(std::format("Failed parsing URL: {}", request->GetURL().ToString()));
34 return false;
35 }
36
37 std::filesystem::path path_part(CefString(&url_parts.path).ToWString());
38 path_part = path_part.relative_path();
39
40 file_path_ = directory_ / path_part;
41 if (!std::filesystem::is_regular_file(file_path_))
42 {
43 pmlog_error(std::format("Failed locating file: {}", file_path_.string()));
44 return false;
45 }
46 file_size_ = std::filesystem::file_size(file_path_);
47 std::string extension = file_path_.extension().string();
48 extension.erase(std::remove(extension.begin(), extension.end(), '.'), extension.end());
49 if (!extension.empty())
50 {
51 mime_type_ = CefGetMimeType(extension);
52 }
53
54 file_stream_ = std::ifstream(file_path_, std::ios::binary);
55 if (!file_stream_)
56 {
57 pmlog_error(std::format("Failed opening file: {}", file_path_.string()));
58 return false;
59 }
60
61 pmlog_dbg(std::format("Opening file: {}", file_path_.string()));
62 return true;
63 }
64
65 void SchemeFileHandler::GetResponseHeaders(CefRefPtr<CefResponse> response,
66 int64_t& response_length,

Callers

nothing calls this directly

Calls 5

ToWStringMethod · 0.80
emptyMethod · 0.80
ToStringMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected