All Downloads are FREE. Search and download functionalities are using the official Maven repository.

oshi.jna.platform.mac.DiskArbitration Maven / Gradle / Ivy

There is a newer version: 3.4.0
Show newest version
/**
 * Oshi (https://github.com/dblock/oshi)
 *
 * Copyright (c) 2010 - 2016 The Oshi Project Team
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Maintainers:
 * dblock[at]dblock[dot]org
 * widdis[at]gmail[dot]com
 * enrico.bianchi[at]gmail[dot]com
 *
 * Contributors:
 * https://github.com/dblock/oshi/graphs/contributors
 */
package oshi.jna.platform.mac;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.PointerType;

import oshi.jna.platform.mac.CoreFoundation.CFAllocatorRef;
import oshi.jna.platform.mac.CoreFoundation.CFDictionaryRef;

/**
 * DiskArbitration framework for disk stats. This class should be considered
 * non-API as it may be removed if/when its code is incorporated into the JNA
 * project.
 *
 * @author widdis[at]gmail[dot]com
 */
public interface DiskArbitration extends Library {
    DiskArbitration INSTANCE = (DiskArbitration) Native.loadLibrary("DiskArbitration", DiskArbitration.class);

    class DASessionRef extends PointerType {
    }

    class DADiskRef extends PointerType {
    }

    /**
     * Creates a new session. The caller of this function receives a reference
     * to the returned object. The caller also implicitly retains the object and
     * is responsible for releasing it with CFRelease().
     *
     * @param allocator
     *            The allocator object to be used to allocate memory.
     * @return A reference to a new DASession.
     */
    DASessionRef DASessionCreate(CFAllocatorRef allocator);

    /**
     * Creates a new disk object. The caller of this function receives a
     * reference to the returned object. The caller also implicitly retains the
     * object and is responsible for releasing it with CFRelease().
     *
     * @param allocator
     *            The allocator object to be used to allocate memory.
     * @param session
     *            The DASession in which to contact Disk Arbitration.
     * @param diskName
     *            he BSD device name.
     * @return A reference to a new DADisk.
     */
    DADiskRef DADiskCreateFromBSDName(CFAllocatorRef allocator, DASessionRef session, String diskName);

    /**
     * Creates a new disk object. The caller of this function receives a
     * reference to the returned object. The caller also implicitly retains the
     * object and is responsible for releasing it with CFRelease().
     *
     * @param allocator
     *            The allocator object to be used to allocate memory.
     * @param session
     *            The DASession in which to contact Disk Arbitration.
     * @param media
     *            The I/O Kit media object.
     * @return A reference to a new DADisk.
     */
    DADiskRef DADiskCreateFromIOMedia(CFAllocatorRef allocator, DASessionRef session, int media);

    /**
     * Obtains the Disk Arbitration description of the specified disk. This
     * function will contact Disk Arbitration to acquire the latest description
     * of the specified disk, unless this function is called on a disk object
     * passed within the context of a registered callback, in which case the
     * description is current as of that callback event.
     *
     * The caller of this function receives a reference to the returned object.
     * The caller also implicitly retains the object and is responsible for
     * releasing it with CFRelease().
     *
     * @param disk
     *            The DADisk for which to obtain the Disk Arbitration
     *            description.
     * @return The disk's Disk Arbitration description.
     */
    CFDictionaryRef DADiskCopyDescription(DADiskRef disk);

    /**
     * Obtains the BSD device name for the specified disk.
     * 
     * @param disk
     *            The DADisk for which to obtain the BSD device name.
     * 
     * @return The disk's BSD device name.
     */
    String DADiskGetBSDName(DADiskRef disk);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy