summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions/cast_streaming_native_handler.h
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-03 15:45:44 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-03 15:45:44 +0000
commit038974b5525b09973e836309d4e731c19dc12972 (patch)
tree45d4e1bde16c3d6a1e3457410e9909965f1c0cc9 /chrome/renderer/extensions/cast_streaming_native_handler.h
parent7a23d81958a00cbfd11ca17d6cc17abe20950364 (diff)
downloadchromium_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.h79
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_