Go to the FreeLists Home Page Home Signup Help Login
 



[openbeosstorage] || [Date Prev] [04-2003 Date Index] [Date Next] || [Thread Prev] [04-2003 Thread Index] [Thread Next]

[openbeosstorage] DiskDevice API 2.2 remarks

  • From: "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx>
  • To: "Storage Kit" <openbeosstorage@xxxxxxxxxxxxx>
  • Date: Sat, 05 Apr 2003 22:39:53 +0200 CEST
Hi,

some more thoughts on the updated DiskDevice API.

BDiskDevice:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

* =5Fconst=5F char* DeviceType() const;

BDiskDeviceRoster:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

* `Do we want visit functions for disk systems and/or jobs=3F'
  -> no, overkill

BDiskDisk:
=3D=3D=3D=3D=3D=3D=3D=3D=3D

* What meaning has the `checkOnly' flag of SupportsRepairing()=3F Same in 
BPartition::[Can]Repair().

BPartition:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

* VisitSubtree(): I thought, we agreed on VisitEachDescendent()=3F

* CanResizeWhileMounted(): I'd rather add a boolean return parameter to 
CanResize().

* GetParameterEditor(): What was `parentEditor' needed for again=3F I 
suspect, in case of a partition with a FS, it is an editor for the 
partition properties, while `editor' would provide FS parameter 
editing.

* SetParameters(): Two editors =3D> two parameter strings. :-)

* CanInitialize(): Should get a `const char *diskSystem' parameter.

* ValidateSetParameters(), ValidateInitialize(): I don't think, they 
make much sense. For one, the `parameters' parameter is not very 
helpful -- the supplied argument can not be delete, nor the value 
returned for it instead. More importantly, the only way to get a 
parameter string is to ask a parameter editor. And it should be safe to 
assume that it won't return nonsense. If the API user supplies an 
invalid string, the job simply fails.

* CreateChild(): I'd add a `BPartition **child' parameter for 
convenience. I wonder, why parameters aren't needed anymore.

* DeleteChild(): The index is missing. It may be better to introduce 
[Can]Delete() instead (or additionally).

Now, I finally know, what bothered me a bit. A partition actually has 
two types, an outer and inner type. The former one is assigned by the 
parent partition, while the latter one describes the contents. The same 
holds, of course, for the parameters. I wonder, if we should make that 
explicit in the API and have Type() and ContentType(). That way we 
could also drop the BDiskDevice::DeviceType(). CanEditParameters(), 
GetParameterEditor() and SetParameters() would each get a second, 
`Content', version.
What do you think=3F

CU, Ingo






[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.