diff options
Diffstat (limited to 'chromium/third_party/webrtc/base/iosfilesystem.mm')
-rw-r--r-- | chromium/third_party/webrtc/base/iosfilesystem.mm | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/chromium/third_party/webrtc/base/iosfilesystem.mm b/chromium/third_party/webrtc/base/iosfilesystem.mm new file mode 100644 index 00000000000..eb4bbecd584 --- /dev/null +++ b/chromium/third_party/webrtc/base/iosfilesystem.mm @@ -0,0 +1,53 @@ +/* + * Copyright 2014 The WebRTC Project Authors. All rights reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +// This file only exists because various iOS system APIs are only +// available from Objective-C. See unixfilesystem.cc for the only use +// (enforced by a lack of a header file). + +#import <Foundation/NSPathUtilities.h> +#import <Foundation/NSProcessInfo.h> +#include <string.h> + +#include "webrtc/base/common.h" +#include "webrtc/base/pathutils.h" + +// Return a new[]'d |char*| copy of the UTF8 representation of |s|. +// Caller owns the returned memory and must use delete[] on it. +static char* copyString(NSString* s) { + const char* utf8 = [s UTF8String]; + size_t len = strlen(utf8) + 1; + char* copy = new char[len]; + // This uses a new[] + strcpy (instead of strdup) because the + // receiver expects to be able to delete[] the returned pointer + // (instead of free()ing it). + strcpy(copy, utf8); + return copy; +} + +// Return a (leaked) copy of a directory name suitable for application data. +char* IOSDataDirectory() { + NSArray* paths = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, NSUserDomainMask, YES); + ASSERT([paths count] == 1); + return copyString([paths objectAtIndex:0]); +} + +// Return a (leaked) copy of a directory name suitable for use as a $TEMP. +char* IOSTempDirectory() { + return copyString(NSTemporaryDirectory()); +} + +// Return the binary's path. +void IOSAppName(rtc::Pathname* path) { + NSProcessInfo *pInfo = [NSProcessInfo processInfo]; + NSString* argv0 = [[pInfo arguments] objectAtIndex:0]; + path->SetPathname([argv0 UTF8String]); +} |