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 "src/inspector/protocol/Forward.h" 9 10 namespace v8_inspector { 11 12 using protocol::Response; 13 14 class RemoteObjectIdBase { 15 public: contextId()16 int contextId() const { return m_injectedScriptId; } 17 18 protected: 19 RemoteObjectIdBase(); ~RemoteObjectIdBase()20 ~RemoteObjectIdBase() {} 21 22 std::unique_ptr<protocol::DictionaryValue> parseInjectedScriptId( 23 const String16&); 24 25 int m_injectedScriptId; 26 }; 27 28 class RemoteObjectId final : public RemoteObjectIdBase { 29 public: 30 static Response parse(const String16&, std::unique_ptr<RemoteObjectId>*); ~RemoteObjectId()31 ~RemoteObjectId() {} id()32 int id() const { return m_id; } 33 34 private: 35 RemoteObjectId(); 36 37 int m_id; 38 }; 39 40 class RemoteCallFrameId final : public RemoteObjectIdBase { 41 public: 42 static Response parse(const String16&, std::unique_ptr<RemoteCallFrameId>*); ~RemoteCallFrameId()43 ~RemoteCallFrameId() {} 44 frameOrdinal()45 int frameOrdinal() const { return m_frameOrdinal; } 46 47 static String16 serialize(int injectedScriptId, int frameOrdinal); 48 49 private: 50 RemoteCallFrameId(); 51 52 int m_frameOrdinal; 53 }; 54 55 } // namespace v8_inspector 56 57 #endif // V8_INSPECTOR_REMOTE_OBJECT_ID_H_ 58