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