1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Added a "willSendRequest" callback to the OSX web stream delegate class.

This commit is contained in:
jules 2013-09-19 19:26:46 +01:00
parent 55bbea3238
commit 99d1357a4c

View file

@ -250,18 +250,19 @@ public:
private:
//==============================================================================
struct DelegateClass : public ObjCClass <NSObject>
struct DelegateClass : public ObjCClass<NSObject>
{
DelegateClass() : ObjCClass <NSObject> ("JUCEAppDelegate_")
DelegateClass() : ObjCClass<NSObject> ("JUCEAppDelegate_")
{
addIvar <URLConnectionState*> ("state");
addIvar<URLConnectionState*> ("state");
addMethod (@selector (connection:didReceiveResponse:), didReceiveResponse, "v@:@@");
addMethod (@selector (connection:didFailWithError:), didFailWithError, "v@:@@");
addMethod (@selector (connection:didReceiveData:), didReceiveData, "v@:@@");
addMethod (@selector (connection:didReceiveResponse:), didReceiveResponse, "v@:@@");
addMethod (@selector (connection:didFailWithError:), didFailWithError, "v@:@@");
addMethod (@selector (connection:didReceiveData:), didReceiveData, "v@:@@");
addMethod (@selector (connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:totalBytesExpectedToWrite:),
connectionDidSendBodyData, "v@:@iii");
addMethod (@selector (connectionDidFinishLoading:), connectionDidFinishLoading, "v@:@");
connectionDidSendBodyData, "v@:@iii");
addMethod (@selector (connectionDidFinishLoading:), connectionDidFinishLoading, "v@:@");
addMethod (@selector (connection:willSendRequest:redirectResponse:), willSendRequest, "@@:@@");
registerClass();
}
@ -285,6 +286,11 @@ private:
getState (self)->didReceiveData (newData);
}
static NSURLRequest* willSendRequest (id, SEL, NSURLConnection*, NSURLRequest* request, NSURLResponse*)
{
return request;
}
static void connectionDidSendBodyData (id self, SEL, NSURLConnection*, NSInteger, NSInteger totalBytesWritten, NSInteger totalBytesExpected)
{
getState (self)->didSendBodyData (totalBytesWritten, totalBytesExpected);
@ -317,9 +323,8 @@ public:
if (responseHeaders != nullptr && connection != nullptr && connection->headers != nil)
{
NSEnumerator* enumerator = [connection->headers keyEnumerator];
NSString* key;
while ((key = [enumerator nextObject]) != nil)
while (NSString* key = [enumerator nextObject])
responseHeaders->set (nsStringToJuce (key),
nsStringToJuce ((NSString*) [connection->headers objectForKey: key]));
}
@ -341,7 +346,7 @@ public:
JUCE_AUTORELEASEPOOL
{
const int bytesRead = connection->read (static_cast <char*> (buffer), bytesToRead);
const int bytesRead = connection->read (static_cast<char*> (buffer), bytesToRead);
position += bytesRead;
if (bytesRead == 0)
@ -379,8 +384,7 @@ private:
const bool isPost;
const int timeOutMs;
void createConnection (URL::OpenStreamProgressCallback* progressCallback,
void* progressCallbackContext)
void createConnection (URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext)
{
jassert (connection == nullptr);
@ -424,9 +428,9 @@ InputStream* URL::createNativeStream (const String& address, bool isPost, const
OpenStreamProgressCallback* progressCallback, void* progressCallbackContext,
const String& headers, const int timeOutMs, StringPairArray* responseHeaders)
{
ScopedPointer <WebInputStream> wi (new WebInputStream (address, isPost, postData,
progressCallback, progressCallbackContext,
headers, timeOutMs, responseHeaders));
ScopedPointer<WebInputStream> wi (new WebInputStream (address, isPost, postData,
progressCallback, progressCallbackContext,
headers, timeOutMs, responseHeaders));
return wi->isError() ? nullptr : wi.release();
}