Add File::Open / Create functions to take an rtc::Pathname

When implementing ISOLATED_OUTDIR feature in WebRTC, I found two issues,
1. pathutils and flags are not accessible in testsupport. But both of them are
useful for the feature. Pathname can help to combine path with filename, while
a flag is needed to handle command line parameter.
2. rtc::File cannot accept an rtc::Pathname, which is a little bit inconvenient.

After investigating bug webrtc:3806, flags, pathutils and urlencode are
removed from rtc_base_approved because of the including of common.h. So I
replaced common.h with checks.h, and ASSERT with RTC_DCHECK. flags,
pathutils and urlencode pairs now can be placed into rtc_base_approved to
unblock file.h to include pathutils.h.

Please kindly let me know if you have other concerns about this change.

BUG=webrtc:3806, webrtc:6732

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.chromium.mac:mac_chromium_rel_ng;master.tryserver.chromium.win:win_chromium_rel_ng;master.tryserver.chromium.android:linux_android_rel_ng

Review-Url: https://codereview.webrtc.org/2533213005
Cr-Commit-Position: refs/heads/master@{#15451}
This commit is contained in:
zijiehe
2016-12-06 15:04:02 -08:00
committed by Commit bot
parent bd28681d02
commit dd87d580e8
9 changed files with 81 additions and 76 deletions

View File

@ -21,8 +21,7 @@
#include <unistd.h>
#endif
#include "webrtc/base/basictypes.h"
#include "webrtc/base/common.h"
#include "webrtc/base/checks.h"
#include "webrtc/base/constructormagic.h"
#include "webrtc/base/platform_file.h"
@ -175,14 +174,14 @@ class FilesystemInterface {
organization_name_ = organization;
}
void GetOrganizationName(std::string* organization) {
ASSERT(NULL != organization);
RTC_DCHECK(organization);
*organization = organization_name_;
}
void SetApplicationName(const std::string& application) {
application_name_ = application;
}
void GetApplicationName(std::string* application) {
ASSERT(NULL != application);
RTC_DCHECK(application);
*application = application_name_;
}
@ -194,7 +193,7 @@ class FilesystemInterface {
class Filesystem {
public:
static FilesystemInterface *default_filesystem() {
ASSERT(default_filesystem_ != NULL);
RTC_DCHECK(default_filesystem_);
return default_filesystem_;
}