blob: 30a5782f95c1b09d5cb47600f7395bfb41531ea2 [file] [log] [blame]
// Copyright 2015 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 DataConsumerTee_h
#define DataConsumerTee_h
#include "modules/ModulesExport.h"
#include "modules/fetch/FetchDataConsumerHandle.h"
#include "public/platform/WebDataConsumerHandle.h"
#include "wtf/Allocator.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
namespace blink {
class ExecutionContext;
class MODULES_EXPORT DataConsumerTee {
STATIC_ONLY(DataConsumerTee);
public:
// Create two handles from one. |src| must be a valid unlocked handle.
static void create(ExecutionContext*, PassOwnPtr<WebDataConsumerHandle> src, OwnPtr<WebDataConsumerHandle>* dest1, OwnPtr<WebDataConsumerHandle>* dest2);
static void create(ExecutionContext*, PassOwnPtr<FetchDataConsumerHandle> src, OwnPtr<FetchDataConsumerHandle>* dest1, OwnPtr<FetchDataConsumerHandle>* dest2);
};
} // namespace blink
#endif // DataConsumerTee_h