// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Next MinVersion: 3

module arc.mojom;

// Represents total storage usage of Android applications.
struct ApplicationsSize {
    // Usage for APK and OBB.
    uint64 total_code_bytes;
    // Usage for data and media.
    uint64 total_data_bytes;
    // Usage for applications' cache.
    uint64 total_cache_bytes;
};

// Next method ID: 5
// Deprecated method ID: 1
interface StorageManagerInstance {
  // Opens private volume details settings.
  OpenPrivateVolumeSettings@2();

  // Gets storage usage of all applications' code, data, and cache size.
  // So far an external storage of ARC is an emulated sdcard, this RPC returns
  // the sum of the internal storage and the external storage usages in order
  // to describe the stateful volume usage of ARC.
  // The |succeeded| value indicates whether there is any error on ARC side.
  // When |succeeded| is false, |applications_size| is null.
  [MinVersion=1] GetApplicationsSize@3()
      => (bool succeeded, ApplicationsSize? applications_size);

  // Deletes all applications' cache files. Because this operation takes a
  // little while, the callback function will be called when the operation is
  // finished.
  [MinVersion=2] DeleteApplicationsCache@4() => ();
};
