VirtualBox

Changeset 25198 in vbox for trunk/src/VBox/Main/include


Ignore:
Timestamp:
Dec 4, 2009 5:53:00 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
55679
Message:

Main: make StorageController instance data private

Location:
trunk/src/VBox/Main/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/StorageControllerImpl.h

    r25184 r25198  
    2727#include "VirtualBoxBase.h"
    2828
    29 #include <list>
    30 
    3129class Machine;
    3230
     
    3735    VBOX_SCRIPTABLE_IMPL(IStorageController)
    3836{
    39 private:
    40 
    41     struct Data
    42     {
    43         /* Constructor. */
    44         Data() : mStorageBus (StorageBus_IDE),
    45                  mStorageControllerType (StorageControllerType_PIIX4),
    46                  mInstance (0),
    47                  mPortCount (2),
    48                  mPortIde0Master (0),
    49                  mPortIde0Slave (1),
    50                  mPortIde1Master (2),
    51                  mPortIde1Slave (3) { }
    52 
    53         bool operator== (const Data &that) const
    54         {
    55             return    this == &that
    56                    || (    (mStorageControllerType == that.mStorageControllerType)
    57                         && (strName           == that.strName)
    58                         && (mPortCount   == that.mPortCount)
    59                         && (mPortIde0Master == that.mPortIde0Master)
    60                         && (mPortIde0Slave  == that.mPortIde0Slave)
    61                         && (mPortIde1Master == that.mPortIde1Master)
    62                         && (mPortIde1Slave  == that.mPortIde1Slave));
    63         }
    64 
    65         /** Unique name of the storage controller. */
    66         Utf8Str strName;
    67         /** The connection type of thestorage controller. */
    68         StorageBus_T mStorageBus;
    69         /** Type of the Storage controller. */
    70         StorageControllerType_T mStorageControllerType;
    71         /** Instance number of the storage controller. */
    72         ULONG mInstance;
    73         /** Number of usable ports. */
    74         ULONG mPortCount;
    75 
    76         /** The following is only for the SATA controller atm. */
    77         /** Port which acts as primary master for ide emulation. */
    78         ULONG mPortIde0Master;
    79         /** Port which acts as primary slave for ide emulation. */
    80         ULONG mPortIde0Slave;
    81         /** Port which acts as secondary master for ide emulation. */
    82         ULONG mPortIde1Master;
    83         /** Port which acts as secondary slave for ide emulation. */
    84         ULONG mPortIde1Slave;
    85     };
    86 
    8737public:
    8838
     
    9949    END_COM_MAP()
    10050
    101     DECLARE_EMPTY_CTOR_DTOR (StorageController)
     51    StorageController() { };
     52    ~StorageController() { };
    10253
    10354    HRESULT FinalConstruct();
     
    13586    // public methods only for internal purposes
    13687
    137     const Utf8Str &name() const { return mData->strName; }
    138     StorageControllerType_T controllerType() const { return mData->mStorageControllerType; }
    139     StorageBus_T storageBus() const { return mData->mStorageBus; }
    140     ULONG instance() const { return mData->mInstance; }
     88    const Utf8Str &getName() const;
     89    StorageControllerType_T getControllerType() const;
     90    StorageBus_T getStorageBus() const;
     91    ULONG getInstance() const;
    14192
    142     bool isModified() { AutoWriteLock alock (this); return mData.isBackedUp(); }
    143     bool isReallyModified() { AutoWriteLock alock (this); return mData.hasActualChanges(); }
     93    bool isModified();
     94    bool isReallyModified();
    14495    bool rollback();
    14596    void commit();
     
    151102
    152103    /** @note this doesn't require a read lock since mParent is constant. */
    153     const ComObjPtr<Machine, ComWeakRef> &parent() { return mParent; };
     104    const ComObjPtr<Machine, ComWeakRef>& getMachine();
    154105
    155     const Backupable<Data> &data() { return mData; }
    156     ComObjPtr<StorageController> peer() { return mPeer; }
     106    ComObjPtr<StorageController> getPeer();
    157107
    158108    // for VirtualBoxSupportErrorInfoImpl
     
    163113    void printList();
    164114
    165     /** Parent object. */
    166     const ComObjPtr<Machine, ComWeakRef> mParent;
    167     /** Peer object. */
    168     const ComObjPtr<StorageController> mPeer;
    169     /** Data. */
    170     Backupable<Data> mData;
     115    struct Data;
     116    Data *m;
    171117};
    172118
  • trunk/src/VBox/Main/include/USBDeviceImpl.h

    r23223 r25198  
    2525
    2626#include "VirtualBoxBase.h"
    27 #include "Logging.h"
    28 
    2927
    3028/**
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette