[openbeosstorage] Re: Disk Device API: Some semantical questions
- From: "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx>
- To: openbeosstorage@xxxxxxxxxxxxx
- Date: Fri, 11 Jul 2003 17:26:06 +0200 CEST
On Fri, 11 Jul 2003 01:04:21 -0700 Tyler Dauwalder <tyler@xxxxxxxxxxxxx
> wrote:
> On 2003-07-10 at 20:27:31 [-0700], Ingo Weinhold wrote:
> > On Thu, 10 Jul 2003 14:08:18 -0700 Tyler Dauwalder
> > <tyler@xxxxxxxxxxxxx
> > > wrote:
> > [...]
> > > > BTW, what kind of partitions does
> > > > BDiskDeviceRoster::VisitEachInitializablePartition() visit,
> > > > i.e.
> > > > what
> > > > is an initializable partition? Something like the device is not
> > > > read-
> > > > only and there exists a disk system for which the partition's
> > > > CanInitialize() would return true? Sounds a bit complicated.
> > >
> > > I think something more along the lines of "the device is not read
> > > -
> > > only
> > > and partition->Parent()->DiskSystem()->SupportsChildSystem()
> > > returns
> > > true for some available disk system and there exists an available
> > > disk
> > > system such that
> > > system->SupportsParentSystem(partition->Parent()->DiskSystem())
> > > returns
> > > true", again pretending BPartition::DiskSystem() exists instead
> > > of
> > > BPartition::GetDiskSystem(). I guess the question is how useful
> > > it
> > > is.
> > > If we want to give a complete overview in DriveSetup of which
> > > partitions
> > > are initializable, we'll have to do something similar anyway. If
> > > we
> > > want
> > > to make the user check on a partition by partition basis if a
> > > given
> > > partition is initializable (i.e. by right-clicking and seeing if
> > > an
> > > "initialize" item is avaliable or something similar), then the
> > > Visit...() function may not be all that necessary. I kind of like
> > > the
> > > first ides better though.
> >
> > I wonder whether we cross the line of what should be provided by
> > the
> > API and what can be implemented in DriveSetup here. The method will
> > be
> > relatively expensive if all these checks are done and DriveSetup
> > will
> > have to implement the functionality to get all disk systems a
> > partition
> > can be initialized with, anyway.
>
> That's a good point. I would say we could probably do without the
> "InitializablePartion" and "PartitionablePartition" versions. I think
> the mounting related ones make sense, and the other three are
> certainly
> reasonable.
OK, then I'll remove the former ones.
> What is the "device" parameter to VisitEachDevice() for? Is it
> intended
> to actually be a BDiskDevice** output parameter, a la the partition
> parameter for VisitEachPartition(), instead of BDiskDevice* as my
> copy
> is labeled?
No, it is a BDiskDevice* output parameter. You (can) supply a pointer
to an uninitialized BDiskDevice and when the visitor requested to stop
at a particular device, the supplied object is initialized to represent
this disk device.
> For VisitEachPartition(), the "device" parameter allows you
> to specify a single device on which to visit all partitions, IIRC,
> but
> that doesn't make much sense for VisitEachDevice().
The BDiskDevice* parameter passed to the partition visiting methods is
an output parameter as well. Since a BPartition object can only exist,
if it belongs to a BDiskDevice, there must also be a BDiskDevice, if we
want to return a BPartition*. And that's the function of the device
parameter; it is set to the device that contains the found partition.
If that is confusing, we can still change the visiting methods to just
return a partition_id (all of them) instead of a bool and have no
further parameters. Then the caller can get a device/partition object
via Get{DiskDevice,Partition}WithID().
CU, Ingo
- Follow-Ups:
- [openbeosstorage] Re: Disk Device API: Some semantical questions
- From: Tyler Dauwalder
- References:
- [openbeosstorage] Re: Disk Device API: Some semantical questions
- From: Tyler Dauwalder
Other related posts:
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- » [openbeosstorage] Re: Disk Device API: Some semantical questions
- [openbeosstorage] Re: Disk Device API: Some semantical questions
- From: Tyler Dauwalder
- [openbeosstorage] Re: Disk Device API: Some semantical questions
- From: Tyler Dauwalder