AdditionsFacilityImpl.h revision 7e027d388f4a1f213776e190c8dacb3b3e6dda21
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * VirtualBox COM class implementation
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * Copyright (C) 2011 Oracle Corporation
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * available from http://www.virtualbox.org. This file is free software;
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * you can redistribute it and/or modify it under the terms of the GNU
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * General Public License (GPL) as published by the Free Software
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(AdditionsFacility, IAdditionsFacility)
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync // public initializer/uninitializer for internal purposes only
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync HRESULT init(Guest *aParent, AdditionsFacilityType_T enmFacility, AdditionsFacilityStatus_T enmStatus);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync // IAdditionsFacility properties
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync STDMETHOD(COMGETTER(ClassType))(AdditionsFacilityClass_T *aClass);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync STDMETHOD(COMGETTER(LastUpdated))(LONG64 *aTimestamp);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync STDMETHOD(COMGETTER(Status))(AdditionsFacilityStatus_T *aStatus);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync STDMETHOD(COMGETTER(Type))(AdditionsFacilityType_T *aType);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** Facility <-> string mappings. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** The facilitie's name. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** The facilitie's type. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** The facilitie's class. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync // public internal methods
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync static const AdditionsFacility::FacilityInfo &typeToInfo(AdditionsFacilityType_T aType);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync HRESULT update(AdditionsFacilityStatus_T aStatus, RTTIMESPEC aTimestamp);
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** Timestamp of last updated status.
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * @todo Add a UpdateRecord struct to keep track of all
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync * status changed + their time; nice for some GUIs. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** The facilitie's current status. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync /** The facilitie's ID/type. */
cfc61eb1cf1a2418102f57ccc29ae617d165e492vboxsync#endif // ____H_ADDITIONSFACILITYIMPL