OpenShot Audio Library | OpenShotAudio
1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
juce_WebInputStream.cpp
1
/*
2
==============================================================================
3
4
This file is part of the JUCE library.
5
Copyright (c) 2022 - Raw Material Software Limited
6
7
JUCE is an open source library subject to commercial or open-source
8
licensing.
9
10
The code included in this file is provided under the terms of the ISC license
11
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12
To use, copy, modify, and/or distribute this software for any purpose with or
13
without fee is hereby granted provided that the above copyright notice and
14
this permission notice appear in all copies.
15
16
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18
DISCLAIMED.
19
20
==============================================================================
21
*/
22
23
namespace
juce
24
{
25
26
WebInputStream::WebInputStream
(
const
URL
& url,
const
bool
usePost)
27
: pimpl (std::make_unique<Pimpl> (*this, url, usePost))
28
{
29
}
30
31
WebInputStream::~WebInputStream
()
32
{
33
}
34
35
WebInputStream
&
WebInputStream::withExtraHeaders
(
const
String
& extra) { pimpl->
withExtraHeaders
(extra);
return
*
this
; }
36
WebInputStream
&
WebInputStream::withCustomRequestCommand
(
const
String
& cmd) { pimpl->
withCustomRequestCommand
(cmd);
return
*
this
; }
37
WebInputStream
&
WebInputStream::withConnectionTimeout
(
int
t) { pimpl->
withConnectionTimeout
(t);
return
*
this
; }
38
WebInputStream
&
WebInputStream::withNumRedirectsToFollow
(
int
num) { pimpl->
withNumRedirectsToFollow
(num);
return
*
this
; }
39
StringPairArray
WebInputStream::getRequestHeaders
()
const
{
return
pimpl->getRequestHeaders(); }
40
StringPairArray
WebInputStream::getResponseHeaders
() {
connect
(
nullptr
);
return
pimpl->getResponseHeaders(); }
41
bool
WebInputStream::isError
()
const
{
return
pimpl->isError(); }
42
void
WebInputStream::cancel
() { pimpl->cancel(); }
43
bool
WebInputStream::isExhausted
() {
return
pimpl->isExhausted(); }
44
int64
WebInputStream::getPosition
() {
return
pimpl->getPosition(); }
45
int64
WebInputStream::getTotalLength
() {
connect
(
nullptr
);
return
pimpl->getTotalLength(); }
46
int
WebInputStream::read
(
void
* buffer,
int
bytes) {
connect
(
nullptr
);
return
pimpl->read (buffer, bytes); }
47
bool
WebInputStream::setPosition
(int64 pos) {
return
pimpl->setPosition (pos); }
48
int
WebInputStream::getStatusCode
() {
connect
(
nullptr
);
return
pimpl->getStatusCode(); }
49
50
bool
WebInputStream::connect
(
Listener
* listener)
51
{
52
if
(hasCalledConnect)
53
return
!
isError
();
54
55
hasCalledConnect =
true
;
56
return
pimpl->connect (listener);
57
}
58
59
StringPairArray
WebInputStream::parseHttpHeaders (
const
String
& headerData)
60
{
61
StringPairArray
headerPairs;
62
auto
headerLines =
StringArray::fromLines
(headerData);
63
64
for
(
const
auto
& headersEntry : headerLines)
65
{
66
if
(headersEntry.isNotEmpty())
67
{
68
const
auto
key = headersEntry.upToFirstOccurrenceOf (
": "
,
false
,
false
);
69
70
auto
value = [&headersEntry, &headerPairs, &key]
71
{
72
const
auto
currentValue = headersEntry.fromFirstOccurrenceOf (
": "
,
false
,
false
);
73
const
auto
previousValue = headerPairs [key];
74
75
if
(previousValue.isNotEmpty())
76
return
previousValue +
","
+ currentValue;
77
78
return
currentValue;
79
}();
80
81
headerPairs.set (key, value);
82
}
83
}
84
85
return
headerPairs;
86
}
87
88
void
WebInputStream::createHeadersAndPostData (
const
URL
& aURL,
89
String
& headers,
90
MemoryBlock
& data,
91
bool
addParametersToBody)
92
{
93
aURL.createHeadersAndPostData (headers, data, addParametersToBody);
94
}
95
96
bool
WebInputStream::Listener::postDataSendProgress
([[maybe_unused]]
WebInputStream
& request,
97
[[maybe_unused]]
int
bytesSent,
98
[[maybe_unused]]
int
totalBytes)
99
{
100
return
true
;
101
}
102
103
}
// namespace juce
juce::MemoryBlock
Definition
juce_MemoryBlock.h:33
juce::StringArray::fromLines
static StringArray fromLines(StringRef stringToBreakUp)
Definition
juce_StringArray.cpp:403
juce::StringPairArray
Definition
juce_StringPairArray.h:35
juce::String
Definition
juce_String.h:53
juce::URL
Definition
juce_URL.h:38
juce::WebInputStream::Listener
Definition
juce_WebInputStream.h:97
juce::WebInputStream::Listener::postDataSendProgress
virtual bool postDataSendProgress(WebInputStream &request, int bytesSent, int totalBytes)
Definition
juce_WebInputStream.cpp:96
juce::WebInputStream::withConnectionTimeout
WebInputStream & withConnectionTimeout(int timeoutInMs)
Definition
juce_WebInputStream.cpp:37
juce::WebInputStream::~WebInputStream
~WebInputStream() override
Definition
juce_WebInputStream.cpp:31
juce::WebInputStream::withExtraHeaders
WebInputStream & withExtraHeaders(const String &extraHeaders)
Definition
juce_WebInputStream.cpp:35
juce::WebInputStream::setPosition
bool setPosition(int64 wantedPos) override
Definition
juce_WebInputStream.cpp:47
juce::WebInputStream::withNumRedirectsToFollow
WebInputStream & withNumRedirectsToFollow(int numRedirects)
Definition
juce_WebInputStream.cpp:38
juce::WebInputStream::getStatusCode
int getStatusCode()
Definition
juce_WebInputStream.cpp:48
juce::WebInputStream::isExhausted
bool isExhausted() override
Definition
juce_WebInputStream.cpp:43
juce::WebInputStream::getTotalLength
int64 getTotalLength() override
Definition
juce_WebInputStream.cpp:45
juce::WebInputStream::connect
bool connect(Listener *listener)
Definition
juce_WebInputStream.cpp:50
juce::WebInputStream::getRequestHeaders
StringPairArray getRequestHeaders() const
Definition
juce_WebInputStream.cpp:39
juce::WebInputStream::withCustomRequestCommand
WebInputStream & withCustomRequestCommand(const String &customRequestCommand)
Definition
juce_WebInputStream.cpp:36
juce::WebInputStream::read
int read(void *destBuffer, int maxBytesToRead) override
Definition
juce_WebInputStream.cpp:46
juce::WebInputStream::isError
bool isError() const
Definition
juce_WebInputStream.cpp:41
juce::WebInputStream::WebInputStream
WebInputStream(const URL &url, bool addParametersToRequestBody)
Definition
juce_WebInputStream.cpp:26
juce::WebInputStream::cancel
void cancel()
Definition
juce_WebInputStream.cpp:42
juce::WebInputStream::getResponseHeaders
StringPairArray getResponseHeaders()
Definition
juce_WebInputStream.cpp:40
juce::WebInputStream::getPosition
int64 getPosition() override
Definition
juce_WebInputStream.cpp:44
libopenshot-audio
JuceLibraryCode
modules
juce_core
network
juce_WebInputStream.cpp
Generated by
1.18.0