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