dom/system/gonk/nsVolume.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef mozilla_system_nsvolume_h__
     6 #define mozilla_system_nsvolume_h__
     8 #include "nsCOMPtr.h"
     9 #include "nsIVolume.h"
    10 #include "nsString.h"
    11 #include "nsTArray.h"
    13 namespace mozilla {
    14 namespace system {
    16 class Volume;
    17 class VolumeMountLock;
    19 class nsVolume : public nsIVolume
    20 {
    21 public:
    22   NS_DECL_THREADSAFE_ISUPPORTS
    23   NS_DECL_NSIVOLUME
    25   // This constructor is used by the UpdateVolumeRunnable constructor
    26   nsVolume(const Volume* aVolume);
    28   // This constructor is used by ContentChild::RecvFileSystemUpdate which is
    29   // used to update the volume cache maintained in the child process.
    30   nsVolume(const nsAString& aName, const nsAString& aMountPoint,
    31            const int32_t& aState, const int32_t& aMountGeneration,
    32            const bool& aIsMediaPresent, const bool& aIsSharing,
    33            const bool& aIsFormatting)
    34     : mName(aName),
    35       mMountPoint(aMountPoint),
    36       mState(aState),
    37       mMountGeneration(aMountGeneration),
    38       mMountLocked(false),
    39       mIsFake(false),
    40       mIsMediaPresent(aIsMediaPresent),
    41       mIsSharing(aIsSharing),
    42       mIsFormatting(aIsFormatting)
    43   {
    44   }
    46   // This constructor is used by nsVolumeService::FindAddVolumeByName, and
    47   // will be followed shortly by a Set call.
    48   nsVolume(const nsAString& aName)
    49     : mName(aName),
    50       mState(STATE_INIT),
    51       mMountGeneration(-1),
    52       mMountLocked(true),  // Needs to agree with Volume::Volume
    53       mIsFake(false),
    54       mIsMediaPresent(false),
    55       mIsSharing(false),
    56       mIsFormatting(false)
    57   {
    58   }
    60   bool Equals(nsIVolume* aVolume);
    61   void Set(nsIVolume* aVolume);
    63   void LogState() const;
    65   const nsString& Name() const        { return mName; }
    66   nsCString NameStr() const           { return NS_LossyConvertUTF16toASCII(mName); }
    68   int32_t MountGeneration() const     { return mMountGeneration; }
    69   bool IsMountLocked() const          { return mMountLocked; }
    71   const nsString& MountPoint() const  { return mMountPoint; }
    72   nsCString MountPointStr() const     { return NS_LossyConvertUTF16toASCII(mMountPoint); }
    74   int32_t State() const               { return mState; }
    75   const char* StateStr() const        { return NS_VolumeStateStr(mState); }
    77   bool IsFake() const                 { return mIsFake; }
    78   bool IsMediaPresent() const         { return mIsMediaPresent; }
    79   bool IsSharing() const              { return mIsSharing; }
    80   bool IsFormatting() const           { return mIsFormatting; }
    82   typedef nsTArray<nsRefPtr<nsVolume> > Array;
    84 private:
    85   ~nsVolume() {}
    87   friend class nsVolumeService; // Calls the following XxxMountLock functions
    88   void UpdateMountLock(const nsAString& aMountLockState);
    89   void UpdateMountLock(bool aMountLocked);
    91   void SetIsFake(bool aIsFake);
    92   void SetState(int32_t aState);
    93   static void FormatVolumeIOThread(const nsCString& aVolume);
    94   static void MountVolumeIOThread(const nsCString& aVolume);
    95   static void UnmountVolumeIOThread(const nsCString& aVolume);
    97   nsString mName;
    98   nsString mMountPoint;
    99   int32_t  mState;
   100   int32_t  mMountGeneration;
   101   bool     mMountLocked;
   102   bool     mIsFake;
   103   bool     mIsMediaPresent;
   104   bool     mIsSharing;
   105   bool     mIsFormatting;
   106 };
   108 } // system
   109 } // mozilla
   111 #endif  // mozilla_system_nsvolume_h__

mercurial