GuestFsObjInfoImpl.h revision 8bc8d66f188d5357155b8340e2d489573be2b607
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/* $Id$ */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/** @file
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * VirtualBox Main - XXX.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/*
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * Copyright (C) 2012 Oracle Corporation
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync *
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * available from http://www.virtualbox.org. This file is free software;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * General Public License (GPL) as published by the Free Software
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#ifndef ____H_GUESTFSOBJINFOIMPL
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#define ____H_GUESTFSOBJINFOIMPL
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#include "VirtualBoxBase.h"
e378dfdadd62aadc0a012c9953322d979d7606e6vboxsync#include "GuestCtrlImplPrivate.h"
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/**
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * TODO
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncclass ATL_NO_VTABLE GuestFsObjInfo :
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync public VirtualBoxBase,
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync VBOX_SCRIPTABLE_IMPL(IGuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync{
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncpublic:
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @name COM and internal init/term/mapping cruft.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * @{ */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(GuestFsObjInfo, IGuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync DECLARE_NOT_AGGREGATABLE(GuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync DECLARE_PROTECT_FINAL_CONSTRUCT()
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync BEGIN_COM_MAP(GuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync VBOX_DEFAULT_INTERFACE_ENTRIES(IGuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync COM_INTERFACE_ENTRY(IFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync END_COM_MAP()
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync DECLARE_EMPTY_CTOR_DTOR(GuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync int init(const GuestFsObjData &objData);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync void uninit(void);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync HRESULT FinalConstruct(void);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync void FinalRelease(void);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @} */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @name IFsObjInfo interface.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * @{ */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(AccessTime))(LONG64 *aAccessTime);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(AllocatedSize))(LONG64 *aAllocatedSize);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(BirthTime))(LONG64 *aBirthTime);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(ChangeTime))(LONG64 *aChangeTime);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(DeviceNumber))(ULONG *aDeviceNumber);
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync STDMETHOD(COMGETTER(FileAttributes))(BSTR *aFileAttrs);
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync STDMETHOD(COMGETTER(GenerationId))(ULONG *aGenerationId);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(GID))(ULONG *aGID);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(GroupName))(BSTR *aGroupName);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(HardLinks))(ULONG *aHardLinks);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(ModificationTime))(LONG64 *aModificationTime);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(Name))(BSTR *aName);
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync STDMETHOD(COMGETTER(NodeId))(LONG64 *aNodeId);
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync STDMETHOD(COMGETTER(NodeIdDevice))(ULONG *aNodeIdDevice);
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync STDMETHOD(COMGETTER(ObjectSize))(LONG64 *aObjectSize);
13f1ce3859ee77d9b9f4d2ca9f93e1633cb133bcvboxsync STDMETHOD(COMGETTER(Type))(FsObjType_T *aType);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(UID))(ULONG *aUID);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(UserFlags))(ULONG *aUserFlags);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(UserName))(BSTR *aUserName);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync STDMETHOD(COMGETTER(ACL))(BSTR *aACL);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @} */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncpublic:
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @name Public internal methods.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * @{ */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @} */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncprivate:
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
e378dfdadd62aadc0a012c9953322d979d7606e6vboxsync GuestFsObjData mData;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync};
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#endif /* !____H_GUESTFSOBJINFOIMPL */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync