Added BDiskDeviceList and test it.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2768 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2003-02-20 00:26:00 +00:00
parent de9b715306
commit 73574809d0
2 changed files with 120 additions and 0 deletions

View File

@ -8,6 +8,7 @@
#include <Application.h>
#include <DiskDevice.h>
#include <DiskDeviceList.h>
#include <DiskDeviceRoster.h>
#include <Message.h>
#include <Messenger.h>
@ -374,12 +375,127 @@ private:
BObjectList<BDiskDevice> fDevices;
};
class MyDeviceList : public BDiskDeviceList {
public:
MyDeviceList(bool useOwnLocker)
: BDiskDeviceList(useOwnLocker)
{
}
virtual void MountPointMoved(BPartition *partition)
{
printf("MountPointMoved()\n");
DumpVisitor().Visit(partition);
}
virtual void PartitionMounted(BPartition *partition)
{
printf("PartitionMounted()\n");
DumpVisitor().Visit(partition);
}
virtual void PartitionUnmounted(BPartition *partition)
{
printf("PartitionUnmounted()\n");
DumpVisitor().Visit(partition);
}
virtual void PartitionChanged(BPartition *partition)
{
printf("PartitionChanged()\n");
DumpVisitor().Visit(partition);
}
virtual void PartitionAdded(BPartition *partition)
{
printf("PartitionAdded()\n");
DumpVisitor().Visit(partition);
}
virtual void PartitionRemoved(BPartition *partition)
{
printf("PartitionRemoved()\n");
DumpVisitor().Visit(partition);
}
virtual void SessionAdded(BSession *session)
{
printf("SessionAdded()\n");
DumpVisitor().Visit(session);
}
virtual void SessionRemoved(BSession *session)
{
printf("SessionRemoved()\n");
DumpVisitor().Visit(session);
}
virtual void MediaChanged(BDiskDevice *device)
{
printf("MediaChanged()\n");
DumpVisitor().Visit(device);
}
virtual void DeviceAdded(BDiskDevice *device)
{
printf("DeviceAdded()\n");
DumpVisitor().Visit(device);
}
virtual void DeviceRemoved(BDiskDevice *device)
{
printf("DeviceRemoved()\n");
DumpVisitor().Visit(device);
}
};
// TestApp2
class TestApp2 : public BApplication {
public:
TestApp2(const char *signature)
: BApplication(signature),
fDeviceList(false)
{
printf("dumping empty list...\n");
DumpVisitor visitor;
fDeviceList.Traverse(&visitor);
printf("dumping done\n");
printf("fetching\n");
status_t error = fDeviceList.Fetch();
if (error == B_OK)
fDeviceList.Traverse(&visitor);
else
printf("fetching failed: %s\n", strerror(error));
printf("unset\n");
fDeviceList.Unset();
printf("dumping empty list...\n");
fDeviceList.Traverse(&visitor);
printf("dumping done\n");
AddHandler(&fDeviceList);
error = fDeviceList.Fetch();
if (error != B_OK)
printf("fetching failed: %s\n", strerror(error));
}
~TestApp2()
{
Lock();
RemoveHandler(&fDeviceList);
Unlock();
}
private:
MyDeviceList fDeviceList;
};
// main
int
main()
{
init_roster();
// -----------
/*
TestApp app("application/x-vnd.obos-disk-device-test");
BDiskDeviceRoster roster;
DumpVisitor visitor;
@ -393,6 +509,9 @@ main()
error = roster.StopWatching(BMessenger(&app));
if (error != B_OK)
printf("stop watching failed: %s\n", strerror(error));
*/
TestApp2 app("application/x-vnd.obos-disk-device-test");
app.Run();
return 0;
}

View File

@ -14,6 +14,7 @@ SimpleTest DiskDeviceTest
# instead, we couldn't use any GUI. At least not at this time.
#
DiskDevice.cpp
DiskDeviceList.cpp
DiskDevicePrivate.cpp
DiskDeviceRoster.cpp
DiskDeviceVisitor.cpp