size_t SkFILEStream::read(void* buffer, size_t size) { if (fFILE) { if (buffer == NULL && size == 0) { // special signature, they want the total size return sk_fgetsize(fFILE); } else { return sk_fread(buffer, size, fFILE); } } return 0; }
// dump all known runtime config options to the file with their default values. // to trigger this, make a config file of zero size. void SkRTConfRegistry::possiblyDumpFile() const { const char *path = configFileLocation(); SkFILE *fp = sk_fopen(path, kRead_SkFILE_Flag); if (!fp) { return; } size_t configFileSize = sk_fgetsize(fp); if (configFileSize == 0) { printAll(path); } sk_fclose(fp); }
static bool read_test_case(const char* filename, SkString* testdata) { FILE* file = sk_fopen(filename, kRead_SkFILE_Flag); if (!file) { SkDebugf("couldn't open file %s\n", filename); return false; } size_t len = sk_fgetsize(file); if (!len) { SkDebugf("couldn't read file %s\n", filename); return false; } testdata->resize(len); (void) fread(testdata->writable_str(), len, file); return true; }
size_t SkFILEStream::getLength() const { return sk_fgetsize(fFILE); }
bool SkFILEStream::isAtEnd() const { if (fOffset == fSize) { return true; } return fOffset >= sk_fgetsize(fFILE.get()); }
SkFILEStream::SkFILEStream(FILE* file) : SkFILEStream(std::shared_ptr<FILE>(file, sk_fclose), file ? sk_fgetsize(file) : 0, file ? sk_ftell(file) : 0) { }