/* $Id$ */
/** @file
* Declaration of USBDeviceFilter and HostUSBDeviceFilter.
*/
/*
* Copyright (C) 2006-2014 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ____H_USBDEVICEFILTERIMPL
#define ____H_USBDEVICEFILTERIMPL
#include "Matching.h"
#include <VBox/usbfilter.h>
#include "USBDeviceFilterWrap.h"
{
struct USBDeviceFilter;
}
// USBDeviceFilter
////////////////////////////////////////////////////////////////////////////////
{
struct Data
{
{
}
/** The filter name. */
/** Indicates whether the filter is active or not. */
/** Remote or local matching criterion. */
/** The filter data blob. */
/** Interface masking bit mask that should be applied to matching devices. */
/** Arbitrary ID field (not used by the class itself) */
void *mId;
};
void FinalRelease();
// public initializer/uninitializer for internal purposes only
bool aReshare = false);
void uninit();
// public methods only for internal purposes
bool i_isModified();
void i_rollback();
void i_commit();
void unshare();
// public methods for internal purposes only
// (ensure there is a caller and a read lock before calling them!)
// tr() wants to belong to a class it seems, thus this one here.
// wrapped IUSBDeviceFilter properties
// wrapped IUSBDeviceFilter methods
bool m_fModified;
/** Used externally to indicate this filter is in the list
(not touched by the class itself except that in init()/uninit()) */
bool mInList;
};
#include "HostUSBDeviceFilterWrap.h"
// HostUSBDeviceFilter
////////////////////////////////////////////////////////////////////////////////
{
{
Data() {}
};
void FinalRelease();
// public initializer/uninitializer for internal purposes only
void uninit();
// public methods for internal purposes only
// (ensure there is a caller and a read lock before calling them!)
// util::Lockable interface
RWLockHandle *lockHandle() const;
// wrapped IHostUSBDeviceFilter properties
// wrapped IHostUSBDeviceFilter properties
/** Used externally to indicate this filter is in the list
(not touched by the class itself except that in init()/uninit()) */
bool mInList;
};
#endif // ____H_USBDEVICEFILTERIMPL
/* vi: set tabstop=4 shiftwidth=4 expandtab: */