730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync * Declaration of USBDeviceFilter and HostUSBDeviceFilter.
d7a2c5e4cc83588b277fd8f28a288773173c3638vboxsync * Copyright (C) 2006-2014 Oracle Corporation
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * available from http://www.virtualbox.org. This file is free software;
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * you can redistribute it and/or modify it under the terms of the GNU
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * General Public License (GPL) as published by the Free Software
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b52c24239bed9dc9f284d829b6059073afcb1894vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync// USBDeviceFilter
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync////////////////////////////////////////////////////////////////////////////////
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync typedef matching::Matchable <matching::ParsedBoolFilter> BOOLFilter;
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync Data() : mActive (FALSE), mMaskedIfs (0), mId (NULL) {}
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync Data (const Data &aThat) : mName (aThat.mName), mActive (aThat.mActive),
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync mRemote (aThat.mRemote), mMaskedIfs (aThat.mMaskedIfs) , mId (aThat.mId)
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** The filter name. */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** Indicates whether the filter is active or not. */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** Remote or local matching criterion. */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** The filter data blob. */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** Interface masking bit mask that should be applied to matching devices. */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** Arbitrary ID field (not used by the class itself) */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // public initializer/uninitializer for internal purposes only
8d2c7dec46677bbd72336d406d2644e578045dd9vboxsync HRESULT init(USBDeviceFilters *aParent, IN_BSTR aName);
8d2c7dec46677bbd72336d406d2644e578045dd9vboxsync HRESULT init(USBDeviceFilters *aParent, USBDeviceFilter *aThat,
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync bool aReshare = false);
8d2c7dec46677bbd72336d406d2644e578045dd9vboxsync HRESULT initCopy(USBDeviceFilters *aParent, USBDeviceFilter *aThat);
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // public methods only for internal purposes
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // public methods for internal purposes only
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // (ensure there is a caller and a read lock before calling them!)
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync ComObjPtr<USBDeviceFilter> i_peer() { return mPeer; }
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // tr() wants to belong to a class it seems, thus this one here.
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync static HRESULT i_usbFilterFieldFromString(PUSBFILTER aFilter,
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync static const char* i_describeUSBFilterIdx(USBFILTERIDX aIdx);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync // wrapped IUSBDeviceFilter properties
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setVendorId(const com::Utf8Str &aVendorId);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setProductId(const com::Utf8Str &aProductId);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setRevision(const com::Utf8Str &aRevision);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getManufacturer(com::Utf8Str &aManufacturer);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setManufacturer(const com::Utf8Str &aManufacturer);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getSerialNumber(com::Utf8Str &aSerialNumber);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setSerialNumber(const com::Utf8Str &aSerialNumber);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getMaskedInterfaces(ULONG *aMaskedInterfaces);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setMaskedInterfaces(ULONG aMaskedInterfaces);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync // wrapped IUSBDeviceFilter methods
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT i_usbFilterFieldGetter(USBFILTERIDX aIdx, com::Utf8Str &aStr);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT i_usbFilterFieldSetter(USBFILTERIDX aIdx, const com::Utf8Str &strNew);
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** Used externally to indicate this filter is in the list
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync (not touched by the class itself except that in init()/uninit()) */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync// HostUSBDeviceFilter
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync////////////////////////////////////////////////////////////////////////////////
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // public initializer/uninitializer for internal purposes only
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // public methods for internal purposes only
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // (ensure there is a caller and a read lock before calling them!)
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync void i_saveSettings(settings::USBDeviceFilter &data);
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync // util::Lockable interface
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync // wrapped IHostUSBDeviceFilter properties
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setVendorId(const com::Utf8Str &aVendorId);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setProductId(const com::Utf8Str &aProductId);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setRevision(const com::Utf8Str &aRevision);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getManufacturer(com::Utf8Str &aManufacturer);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setManufacturer(const com::Utf8Str &aManufacturer);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getSerialNumber(com::Utf8Str &aSerialNumber);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setSerialNumber(const com::Utf8Str &aSerialNumber);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getMaskedInterfaces(ULONG *aMaskedInterfaces);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setMaskedInterfaces(ULONG aMaskedInterfaces);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync // wrapped IHostUSBDeviceFilter properties
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT getAction(USBDeviceFilterAction_T *aAction);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT setAction(USBDeviceFilterAction_T aAction);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT i_usbFilterFieldGetter(USBFILTERIDX aIdx, com::Utf8Str &aStr);
dc8bfd15c7bcc2d2b4ff4f397637839b36d4713avboxsync HRESULT i_usbFilterFieldSetter(USBFILTERIDX aIdx, const com::Utf8Str &aStr);
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync /** Used externally to indicate this filter is in the list
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync (not touched by the class itself except that in init()/uninit()) */
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync#endif // ____H_USBDEVICEFILTERIMPL
730b109e93240f48a2fc4ca97c05e5f347f71ec9vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */