/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.profilerapp.memory;

/*
 * An abstraction layer for all the memory-related API calls the profiler/monitor needs to make
 */
public interface IMemoryInfoProvider {

    int BYTE_TO_KILOBYTE = 1024;

    int GetFreedObjectsCount();

    int GetFreedObjectsSize();

    long GetManagedHeapMaxSize();

    long GetManagedHeapTotalSize();

    long GetManagedHeapAllocatedSize();

    long GetManagedHeapFreeSize();

    long GetNativeHeapTotalSize();

    long GetNativeHeapAllocatedSize();

    long GetNativeHeapFreeSize();

    long GetTotalPssSize();

    long GetManagedPssSize();

    long GetNativePssSize();

    long GetOtherPssSize();
}
