public long getTotalUsage() { long usage = 0; if (mLocalStorageInfo != null) { usage += mLocalStorageInfo.getSize(); } for (StorageInfo info : mStorageInfo) { usage += info.getSize(); } return usage; }
/** * Extracts the StorageInfo stored in the FileAttributes. * * <p>Initializes legacy fields that used to be stored in StorageInfo, but are now stored in * FileAttributes. * * <p>Should only be used when backwards compatibility must be maintained. */ public static StorageInfo extractFrom(FileAttributes attributes) { StorageInfo info = attributes.getStorageInfo(); if (attributes.isDefined(FileAttribute.SIZE)) { info.setLegacySize(attributes.getSize()); } if (attributes.isDefined(FileAttribute.ACCESS_LATENCY)) { info.setLegacyAccessLatency(attributes.getAccessLatency()); } if (attributes.isDefined(FileAttribute.RETENTION_POLICY)) { info.setLegacyRetentionPolicy(attributes.getRetentionPolicy()); } if (attributes.isDefined(FileAttribute.FLAGS)) { for (Map.Entry<String, String> entry : attributes.getFlags().entrySet()) { info.setKey(entry.getKey(), entry.getValue()); } } if (attributes.isDefined(FileAttribute.CHECKSUM)) { info.setKey("flag-c", Joiner.on(',').join(attributes.getChecksums())); } if (attributes.isDefined(FileAttribute.OWNER)) { info.setKey("uid", Integer.toString(attributes.getOwner())); } if (attributes.isDefined(FileAttribute.OWNER_GROUP)) { info.setKey("gid", Integer.toString(attributes.getGroup())); } return info; }
/** * Injects the StorageInfo into the FileAttributes. * * <p>Legacy fields that used to be stored in StorageInfo, but are now stored in FileAttributes, * are injected into the FileAttributes too. * * <p>Should only be used when backwards compatibility must be maintained. */ public static FileAttributes injectInto(StorageInfo info, FileAttributes attributes) { attributes.setStorageInfo(info); attributes.setSize(info.getLegacySize()); attributes.setAccessLatency(info.getLegacyAccessLatency()); attributes.setRetentionPolicy(info.getLegacyRetentionPolicy()); String cFlag = info.getKey("flag-c"); if (cFlag != null) { attributes.setChecksums( Sets.newHashSet( transform( Splitter.on(',').trimResults().omitEmptyStrings().split(cFlag), new Function<String, Checksum>() { @Override public Checksum apply(String digest) { return Checksum.parseChecksum(digest); } }))); } String uid = info.getKey("uid"); if (uid != null) { attributes.setOwner(Integer.parseInt(uid)); } String gid = info.getKey("gid"); if (gid != null) { attributes.setGroup(Integer.parseInt(gid)); } attributes.setFlags(info.getMap()); return attributes; }
public void clearAllStoredData(final StoredDataClearedCallback callback) { if (mLocalStorageInfo != null) { mLocalStorageInfo.clear(); mLocalStorageInfo = null; } mStorageInfoCallbacksLeft = mStorageInfo.size(); if (mStorageInfoCallbacksLeft > 0) { for (StorageInfo info : mStorageInfo) { info.clear( new WebsitePreferenceBridge.StorageInfoClearedCallback() { @Override public void onStorageInfoCleared() { if (--mStorageInfoCallbacksLeft == 0) callback.onStoredDataCleared(); } }); } mStorageInfo.clear(); } else { callback.onStoredDataCleared(); } }