1591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch/* 2591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Copyright (C) 2013 Google Inc. All rights reserved. 3591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 4591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Redistribution and use in source and binary forms, with or without 5591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * modification, are permitted provided that the following conditions 6591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * are met: 7591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 1. Redistributions of source code must retain the above copyright 8591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * notice, this list of conditions and the following disclaimer. 9591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 10591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * notice, this list of conditions and the following disclaimer in the 11591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * documentation and/or other materials provided with the distribution. 12591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 13591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY 14591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR 17591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch */ 25591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 26591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#ifndef WebMediaStreamTrackSourcesRequest_h 27591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#define WebMediaStreamTrackSourcesRequest_h 28591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 29591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "WebCommon.h" 30591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "WebNonCopyable.h" 31591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "WebPrivatePtr.h" 32591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "WebString.h" 33591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "WebVector.h" 34591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 35c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 36591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 37e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class MediaStreamTrackSourcesRequest; 38591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass WebSourceInfo; 39591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 40591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass WebMediaStreamTrackSourcesRequest { 41591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochpublic: 42591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch class ExtraData { 43591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch public: 44591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch virtual ~ExtraData() { } 45591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch }; 46591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 47591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch WebMediaStreamTrackSourcesRequest() { } 48591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch WebMediaStreamTrackSourcesRequest(const WebMediaStreamTrackSourcesRequest& other) { assign(other); } 49591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch ~WebMediaStreamTrackSourcesRequest() { reset(); } 50591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 51591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch WebMediaStreamTrackSourcesRequest& operator=(const WebMediaStreamTrackSourcesRequest& other) 52591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch { 53591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch assign(other); 54591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch return *this; 55591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch } 56591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_PLATFORM_EXPORT void assign(const WebMediaStreamTrackSourcesRequest&); 58591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 5909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_PLATFORM_EXPORT void reset(); 60591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch bool isNull() const { return m_private.isNull(); } 61591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 6209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_PLATFORM_EXPORT WebString origin() const; 6309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_PLATFORM_EXPORT void requestSucceeded(const WebVector<WebSourceInfo>&) const; 64591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 65591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch // Extra data associated with this object. 66591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch // If non-null, the extra data pointer will be deleted when the object is destroyed. 67591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch // Setting the extra data pointer will cause any existing non-null 68591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch // extra data pointer to be deleted. 6909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_PLATFORM_EXPORT ExtraData* extraData() const; 7009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_PLATFORM_EXPORT void setExtraData(ExtraData*); 71591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 7209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#if INSIDE_BLINK 73e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) BLINK_PLATFORM_EXPORT WebMediaStreamTrackSourcesRequest(MediaStreamTrackSourcesRequest*); 74591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#endif 75591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 76591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochprivate: 77e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebPrivatePtr<MediaStreamTrackSourcesRequest> m_private; 78591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}; 79591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 8051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} // namespace blink 81591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 82591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#endif // WebMediaStreamTrackSourcesRequest_h 83