30 #ifndef CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_ 31 #define CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_ 42 struct CustomClientInfo;
63 class CrashGenerationClient {
65 CrashGenerationClient(
const wchar_t* pipe_name,
66 MINIDUMP_TYPE dump_type,
67 const CustomClientInfo* custom_info);
69 CrashGenerationClient(HANDLE pipe_handle,
70 MINIDUMP_TYPE dump_type,
71 const CustomClientInfo* custom_info);
115 HANDLE ConnectToServer();
121 bool RegisterClient(HANDLE pipe);
124 bool ValidateResponse(
const ProtocolMessage& msg)
const;
127 bool IsRegistered()
const;
132 HANDLE ConnectToPipe(
const wchar_t* pipe_name,
137 bool SignalCrashEventAndWait();
140 std::wstring pipe_name_;
147 CustomClientInfo custom_info_;
150 MINIDUMP_TYPE dump_type_;
157 HANDLE crash_generated_;
161 HANDLE server_alive_;
164 DWORD server_process_id_;
170 EXCEPTION_POINTERS* exception_pointers_;
176 CrashGenerationClient(
const CrashGenerationClient& crash_client);
177 CrashGenerationClient& operator=(
const CrashGenerationClient& crash_client);
182 #endif // CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
bool RequestUpload(DWORD crash_id)
static HANDLE DuplicatePipeToClientProcess(const wchar_t *pipe_name, HANDLE hProcess)