2012-07-16 09:38:18 -07:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
#include "nsVolume.h"
|
|
|
|
#include "nsISupportsUtils.h"
|
|
|
|
#include "nsIVolume.h"
|
|
|
|
#include "nsVolumeStat.h"
|
2012-08-03 16:48:58 -07:00
|
|
|
#include "Volume.h"
|
2012-07-16 09:38:18 -07:00
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace system {
|
|
|
|
|
|
|
|
const char *
|
2012-08-22 08:56:38 -07:00
|
|
|
NS_VolumeStateStr(int32_t aState)
|
2012-07-16 09:38:18 -07:00
|
|
|
{
|
|
|
|
switch (aState) {
|
|
|
|
case nsIVolume::STATE_INIT: return "Init";
|
|
|
|
case nsIVolume::STATE_NOMEDIA: return "NoMedia";
|
|
|
|
case nsIVolume::STATE_IDLE: return "Idle";
|
|
|
|
case nsIVolume::STATE_PENDING: return "Pending";
|
|
|
|
case nsIVolume::STATE_CHECKING: return "Checking";
|
|
|
|
case nsIVolume::STATE_MOUNTED: return "Mounted";
|
|
|
|
case nsIVolume::STATE_UNMOUNTING: return "Unmounting";
|
|
|
|
case nsIVolume::STATE_FORMATTING: return "Formatting";
|
|
|
|
case nsIVolume::STATE_SHARED: return "Shared";
|
|
|
|
case nsIVolume::STATE_SHAREDMNT: return "Shared-Mounted";
|
|
|
|
}
|
|
|
|
return "???";
|
|
|
|
}
|
|
|
|
|
|
|
|
NS_IMPL_THREADSAFE_ISUPPORTS1(nsVolume, nsIVolume)
|
|
|
|
|
2012-08-03 16:48:58 -07:00
|
|
|
nsVolume::nsVolume(const Volume *aVolume)
|
|
|
|
: mName(NS_ConvertUTF8toUTF16(aVolume->Name())),
|
|
|
|
mMountPoint(NS_ConvertUTF8toUTF16(aVolume->MountPoint())),
|
|
|
|
mState(aVolume->State())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2012-07-16 09:38:18 -07:00
|
|
|
NS_IMETHODIMP nsVolume::GetName(nsAString &aName)
|
|
|
|
{
|
|
|
|
aName = mName;
|
|
|
|
return NS_OK;
|
|
|
|
}
|
|
|
|
|
|
|
|
NS_IMETHODIMP nsVolume::GetMountPoint(nsAString &aMountPoint)
|
|
|
|
{
|
|
|
|
aMountPoint = mMountPoint;
|
|
|
|
return NS_OK;
|
|
|
|
}
|
|
|
|
|
2012-08-22 08:56:38 -07:00
|
|
|
NS_IMETHODIMP nsVolume::GetState(int32_t *aState)
|
2012-07-16 09:38:18 -07:00
|
|
|
{
|
|
|
|
*aState = mState;
|
|
|
|
return NS_OK;
|
|
|
|
}
|
|
|
|
|
2012-07-06 13:14:07 -07:00
|
|
|
NS_IMETHODIMP nsVolume::GetStats(nsIVolumeStat **aResult)
|
2012-07-16 09:38:18 -07:00
|
|
|
{
|
|
|
|
if (mState != STATE_MOUNTED) {
|
|
|
|
return NS_ERROR_NOT_AVAILABLE;
|
|
|
|
}
|
|
|
|
|
|
|
|
NS_IF_ADDREF(*aResult = new nsVolumeStat(mMountPoint));
|
|
|
|
return NS_OK;
|
|
|
|
}
|
|
|
|
|
|
|
|
} // system
|
|
|
|
} // mozilla
|