| Index: src/inspector/V8HeapProfilerAgentImpl.h
|
| diff --git a/src/inspector/V8HeapProfilerAgentImpl.h b/src/inspector/V8HeapProfilerAgentImpl.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d4e6073967738abd354604ee03bea3645a581170
|
| --- /dev/null
|
| +++ b/src/inspector/V8HeapProfilerAgentImpl.h
|
| @@ -0,0 +1,73 @@
|
| +// Copyright 2016 the V8 project authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef V8_INSPECTOR_V8HEAPPROFILERAGENTIMPL_H_
|
| +#define V8_INSPECTOR_V8HEAPPROFILERAGENTIMPL_H_
|
| +
|
| +#include "src/inspector/Allocator.h"
|
| +#include "src/inspector/protocol/Forward.h"
|
| +#include "src/inspector/protocol/HeapProfiler.h"
|
| +
|
| +#include <v8.h>
|
| +
|
| +namespace v8_inspector {
|
| +
|
| +class V8InspectorSessionImpl;
|
| +
|
| +using protocol::ErrorString;
|
| +using protocol::Maybe;
|
| +
|
| +class V8HeapProfilerAgentImpl : public protocol::HeapProfiler::Backend {
|
| + V8_INSPECTOR_DISALLOW_COPY(V8HeapProfilerAgentImpl);
|
| +
|
| + public:
|
| + V8HeapProfilerAgentImpl(V8InspectorSessionImpl*, protocol::FrontendChannel*,
|
| + protocol::DictionaryValue* state);
|
| + ~V8HeapProfilerAgentImpl() override;
|
| + void restore();
|
| +
|
| + void collectGarbage(ErrorString*) override;
|
| +
|
| + void enable(ErrorString*) override;
|
| + void startTrackingHeapObjects(ErrorString*,
|
| + const Maybe<bool>& trackAllocations) override;
|
| + void stopTrackingHeapObjects(ErrorString*,
|
| + const Maybe<bool>& reportProgress) override;
|
| +
|
| + void disable(ErrorString*) override;
|
| +
|
| + void takeHeapSnapshot(ErrorString*,
|
| + const Maybe<bool>& reportProgress) override;
|
| +
|
| + void getObjectByHeapObjectId(
|
| + ErrorString*, const String16& heapSnapshotObjectId,
|
| + const Maybe<String16>& objectGroup,
|
| + std::unique_ptr<protocol::Runtime::RemoteObject>* result) override;
|
| + void addInspectedHeapObject(ErrorString*,
|
| + const String16& inspectedHeapObjectId) override;
|
| + void getHeapObjectId(ErrorString*, const String16& objectId,
|
| + String16* heapSnapshotObjectId) override;
|
| +
|
| + void startSampling(ErrorString*,
|
| + const Maybe<double>& samplingInterval) override;
|
| + void stopSampling(
|
| + ErrorString*,
|
| + std::unique_ptr<protocol::HeapProfiler::SamplingHeapProfile>*) override;
|
| +
|
| + private:
|
| + void startTrackingHeapObjectsInternal(bool trackAllocations);
|
| + void stopTrackingHeapObjectsInternal();
|
| + void requestHeapStatsUpdate();
|
| + static void onTimer(void*);
|
| +
|
| + V8InspectorSessionImpl* m_session;
|
| + v8::Isolate* m_isolate;
|
| + protocol::HeapProfiler::Frontend m_frontend;
|
| + protocol::DictionaryValue* m_state;
|
| + bool m_hasTimer;
|
| +};
|
| +
|
| +} // namespace v8_inspector
|
| +
|
| +#endif // V8_INSPECTOR_V8HEAPPROFILERAGENTIMPL_H_
|
|
|