diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 15:45:44 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 15:45:44 +0000 |
commit | 038974b5525b09973e836309d4e731c19dc12972 (patch) | |
tree | 45d4e1bde16c3d6a1e3457410e9909965f1c0cc9 /chrome/renderer/extensions/cast_streaming_native_handler.h | |
parent | 7a23d81958a00cbfd11ca17d6cc17abe20950364 (diff) | |
download | chromium_src-038974b5525b09973e836309d4e731c19dc12972.zip chromium_src-038974b5525b09973e836309d4e731c19dc12972.tar.gz chromium_src-038974b5525b09973e836309d4e731c19dc12972.tar.bz2 |
Cast Extensions API: Major namespace and object renaming
There is no functional change in this patch. This change only does
renaming.
Extensions API namespaces:
webrtc.castSendTransport -> cast.streaming.rtpStream
webrtc.castUdpTransport -> cast.streaming.udpTransport
Class renaming:
WebRtcNativeHandler -> CastStreamingNativeHandler
CastSendTransport -> CastRtpStream
Tests and related files are also renamed to get rid of the webrtc
label.
BUG=301920
Review URL: https://codereview.chromium.org/90083002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238403 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/cast_streaming_native_handler.h')
-rw-r--r-- | chrome/renderer/extensions/cast_streaming_native_handler.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/cast_streaming_native_handler.h b/chrome/renderer/extensions/cast_streaming_native_handler.h new file mode 100644 index 0000000..4c2360c --- /dev/null +++ b/chrome/renderer/extensions/cast_streaming_native_handler.h @@ -0,0 +1,79 @@ +// Copyright 2013 The Chromium 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 CHROME_RENDERER_EXTENSIONS_CAST_STREAMING_NATIVE_HANDLER_H_ +#define CHROME_RENDERER_EXTENSIONS_CAST_STREAMING_NATIVE_HANDLER_H_ + +#include <map> + +#include "base/memory/linked_ptr.h" +#include "base/memory/weak_ptr.h" +#include "chrome/renderer/extensions/object_backed_native_handler.h" +#include "chrome/renderer/extensions/scoped_persistent.h" +#include "v8/include/v8.h" + +class CastRtpStream; +class CastUdpTransport; + +namespace extensions { + +class ChromeV8Context; + +// Native code that handle chrome.webrtc custom bindings. +class CastStreamingNativeHandler : public ObjectBackedNativeHandler { + public: + explicit CastStreamingNativeHandler(ChromeV8Context* context); + virtual ~CastStreamingNativeHandler(); + + private: + void CreateCastSession( + const v8::FunctionCallbackInfo<v8::Value>& args); + + void DestroyCastRtpStream( + const v8::FunctionCallbackInfo<v8::Value>& args); + void CreateParamsCastRtpStream( + const v8::FunctionCallbackInfo<v8::Value>& args); + void GetCapsCastRtpStream( + const v8::FunctionCallbackInfo<v8::Value>& args); + void StartCastRtpStream( + const v8::FunctionCallbackInfo<v8::Value>& args); + void StopCastRtpStream( + const v8::FunctionCallbackInfo<v8::Value>& args); + + void DestroyCastUdpTransport( + const v8::FunctionCallbackInfo<v8::Value>& args); + void StartCastUdpTransport( + const v8::FunctionCallbackInfo<v8::Value>& args); + void StopCastUdpTransport( + const v8::FunctionCallbackInfo<v8::Value>& args); + + // Helper method to call the v8 callback function after a session is + // created. + void CallCreateCallback(scoped_ptr<CastRtpStream> stream1, + scoped_ptr<CastRtpStream> stream2, + scoped_ptr<CastUdpTransport> udp_transport); + + // Gets the RTP stream or UDP transport indexed by an ID. + // If not found, returns NULL and throws a V8 exception. + CastRtpStream* GetRtpStreamOrThrow(int stream_id) const; + CastUdpTransport* GetUdpTransportOrThrow(int transport_id) const; + + int last_transport_id_; + + typedef std::map<int, linked_ptr<CastRtpStream> > RtpStreamMap; + RtpStreamMap rtp_stream_map_; + + typedef std::map<int, linked_ptr<CastUdpTransport> > UdpTransportMap; + UdpTransportMap udp_transport_map_; + + base::WeakPtrFactory<CastStreamingNativeHandler> weak_factory_; + + extensions::ScopedPersistent<v8::Function> create_callback_; + + DISALLOW_COPY_AND_ASSIGN(CastStreamingNativeHandler); +}; + +} // namespace extensions + +#endif // CHROME_RENDERER_EXTENSIONS_CAST_STREAMING_NATIVE_HANDLER_H_ |