IToiStorageDevice.idl
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ITOISTORAGEDEVICE_IDL
00016 #define ITOISTORAGEDEVICE_IDL
00017
00018 #include "TToiInvalidArgumentException.idl"
00019 #include "TToiNotEnoughResourcesException.idl"
00020 #include "TToiUnhandledValueException.idl"
00021 #include "IToiApplicationService.idl"
00022 #include "IToiOperationManager.idl"
00023 #include "TToiInvalidPreconditionException.idl"
00024 #include "TToiOperationNotSupportedException.idl"
00025
00031 interface IToiStorageDevice {
00032
00034 typedef unsigned long TToiStorageDeviceId;
00035
00037 typedef unsigned long TToiPartitionId;
00038
00040 typedef sequence < TToiPartitionId > TToiPartitionIdSequence;
00041
00044 enum TToiFileSystemStatus
00045 {
00046
00049
00050 FS_STATUS_OK,
00051
00056
00057 FS_STATUS_ERRORS_CORRECTED,
00058
00064
00065 FS_STATUS_ERRORS_LEFT_UNCORRECTED,
00066
00073
00074 FS_STATUS_MAJOR_FAILURE
00075 };
00078 typedef TToiFileSystemStatus TFileSystemStatus;
00079
00081 struct TToiStorageInfo {
00084 IToiStorageDevice::TToiStorageDeviceId Id;
00086 string SerialNumber;
00088 boolean IsInternal;
00091 boolean IsConnected;
00093 boolean IsSpinning;
00095 boolean IsOverheated;
00097 IToiStorageDevice::TToiPartitionIdSequence Partitions;
00099 long long Capacity;
00101 long long FreeCapacity;
00103 long Temperature;
00108
00109 boolean IsApproved;
00110 };
00111
00113 struct TToiPartitionInfo {
00116 IToiStorageDevice::TToiPartitionId Id;
00119 string UniqueId;
00121 boolean IsMounted;
00123 string MountPoint;
00125 long long Capacity;
00127 long long FreeCapacity;
00129 IToiStorageDevice::TToiFileSystemStatus FsStatus;
00135
00136 boolean IsReadWrite;
00137 };
00138
00145 void GetStorageInfo(out TToiStorageInfo info);
00146
00161 void GetPartitionInfo(in TToiPartitionId partitionId,
00162 out TToiPartitionInfo info)
00163 raises (TToiInvalidArgumentException, TToiInvalidPreconditionException);
00164
00182 void MountPartition(in IToiOperationManager::TToiOperationId operationId,
00183 in TToiPartitionId partitionId,
00184 in string mountPoint)
00185 raises (TToiInvalidArgumentException, TToiInvalidPreconditionException);
00186
00202 void UnmountPartition(in IToiOperationManager::TToiOperationId operationId,
00203 in TToiPartitionId partitionId)
00204 raises (TToiInvalidArgumentException, TToiInvalidPreconditionException);
00205
00222 void Reformat(in IToiOperationManager::TToiOperationId operationId)
00223 raises (TToiInvalidArgumentException, TToiInvalidPreconditionException, TToiOperationNotSupportedException);
00224
00238 void ScheduleReformatOnNextReboot(in TToiPartitionId partitionId)
00239 raises (TToiOperationNotSupportedException, TToiInvalidArgumentException);
00240
00254 void ScheduleFileSystemRepairOnNextReboot(in TToiPartitionId partitionId)
00255 raises (TToiOperationNotSupportedException, TToiInvalidArgumentException);
00256
00266 void SpinDown()
00267 raises (TToiInvalidPreconditionException);
00268
00277 void SpinUp()
00278 raises (TToiInvalidPreconditionException);
00279
00280 };
00281
00282 #endif