this repo has no description
1/* Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com) */
2#pragma once
3
4namespace py {
5
6class RawObject;
7class RawHeapObject;
8
9enum class PointerKind {
10 kRuntime,
11 kThread,
12 kHandle,
13 kStack,
14 kApiHandle,
15 kUnknown,
16 kLayout,
17};
18
19class PointerVisitor {
20 public:
21 virtual void visitPointer(RawObject* pointer, PointerKind kind) = 0;
22 virtual ~PointerVisitor() = default;
23};
24
25class HeapObjectVisitor {
26 public:
27 virtual void visitHeapObject(RawHeapObject object) = 0;
28 virtual ~HeapObjectVisitor() = default;
29};
30
31class HandleVisitor {
32 public:
33 virtual void visitHandle(void* handle, RawObject object) = 0;
34 virtual ~HandleVisitor() = default;
35};
36
37} // namespace py