/* * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ #include "IOScheduler.h" #include #include #include "IOSchedulerRoster.h" IOScheduler::IOScheduler(DMAResource* resource) : fDMAResource(resource), fName(NULL), fID(IOSchedulerRoster::Default()->NextID()), fIOCallback(NULL), fIOCallbackData(NULL), fSchedulerRegistered(false) { } IOScheduler::~IOScheduler() { if (fSchedulerRegistered) IOSchedulerRoster::Default()->RemoveScheduler(this); free(fName); } status_t IOScheduler::Init(const char* name) { fName = strdup(name); if (fName == NULL) return B_NO_MEMORY; IOSchedulerRoster::Default()->AddScheduler(this); fSchedulerRegistered = true; return B_OK; } void IOScheduler::SetCallback(IOCallback& callback) { SetCallback(&IOCallback::WrapperFunction, &callback); } void IOScheduler::SetCallback(io_callback callback, void* data) { fIOCallback = callback; fIOCallbackData = data; } void IOScheduler::SetDeviceCapacity(off_t deviceCapacity) { } void IOScheduler::MediaChanged() { }