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