• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_INSPECTOR_REMOTE_OBJECT_ID_H_
6 #define V8_INSPECTOR_REMOTE_OBJECT_ID_H_
7 
8 #include <memory>
9 
10 #include "src/inspector/protocol/Forward.h"
11 
12 namespace v8_inspector {
13 
14 using protocol::Response;
15 
16 class RemoteObjectIdBase {
17  public:
isolateId()18   uint64_t isolateId() const { return m_isolateId; }
contextId()19   int contextId() const { return m_injectedScriptId; }
20 
21  protected:
22   RemoteObjectIdBase();
23   ~RemoteObjectIdBase() = default;
24 
25   bool parseId(const String16&);
26 
27   uint64_t m_isolateId;
28   int m_injectedScriptId;
29   int m_id;
30 };
31 
32 class RemoteObjectId final : public RemoteObjectIdBase {
33  public:
34   static Response parse(const String16&, std::unique_ptr<RemoteObjectId>*);
35   ~RemoteObjectId() = default;
id()36   int id() const { return m_id; }
37 
38   static String16 serialize(uint64_t isolateId, int injectedScriptId, int id);
39 };
40 
41 class RemoteCallFrameId final : public RemoteObjectIdBase {
42  public:
43   static Response parse(const String16&, std::unique_ptr<RemoteCallFrameId>*);
44   ~RemoteCallFrameId() = default;
45 
frameOrdinal()46   int frameOrdinal() const { return m_id; }
47 
48   static String16 serialize(uint64_t isolateId, int injectedScriptId,
49                             int frameOrdinal);
50 };
51 
52 }  // namespace v8_inspector
53 
54 #endif  // V8_INSPECTOR_REMOTE_OBJECT_ID_H_
55