2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/* $Id$ */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/** @file
8d9dcfac5d32ad4c7ddc2f16980419bdc132efe5vboxsync * VirtualBox Main - Guest file system object information implementation.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync/*
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync * Copyright (C) 2012-2014 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
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync#include "GuestFsObjInfoWrap.h"
e378dfdadd62aadc0a012c9953322d979d7606e6vboxsync#include "GuestCtrlImplPrivate.h"
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncclass ATL_NO_VTABLE GuestFsObjInfo :
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync public GuestFsObjInfoWrap
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync{
2f3883b126a405f92b19e829472f614c7352b4f9vboxsyncpublic:
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync /** @name COM and internal init/term/mapping cruft.
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync * @{ */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync DECLARE_EMPTY_CTOR_DTOR(GuestFsObjInfo)
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
8bc8d66f188d5357155b8340e2d489573be2b607vboxsync int init(const GuestFsObjData &objData);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync void uninit(void);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync HRESULT FinalConstruct(void);
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync void FinalRelease(void);
8d9dcfac5d32ad4c7ddc2f16980419bdc132efe5vboxsync /** @} */
35f273282237ab7ba160fe573508521e4ea1e9bavboxsync
35f273282237ab7ba160fe573508521e4ea1e9bavboxsyncprivate:
cb34c0bf798be578978db08aa7a0dfd798ed6a69vboxsync
8d9dcfac5d32ad4c7ddc2f16980419bdc132efe5vboxsync /** Wrapped @name IGuestFsObjInfo properties.
8d9dcfac5d32ad4c7ddc2f16980419bdc132efe5vboxsync * @{ */
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getAccessTime(LONG64 *aAccessTime);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getAllocatedSize(LONG64 *aAllocatedSize);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getBirthTime(LONG64 *aBirthTime);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getChangeTime(LONG64 *aChangeTime);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getDeviceNumber(ULONG *aDeviceNumber);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getFileAttributes(com::Utf8Str &aFileAttributes);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getGenerationId(ULONG *aGenerationId);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getGID(ULONG *aGID);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getGroupName(com::Utf8Str &aGroupName);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getHardLinks(ULONG *aHardLinks);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getModificationTime(LONG64 *aModificationTime);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getName(com::Utf8Str &aName);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getNodeId(LONG64 *aNodeId);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getNodeIdDevice(ULONG *aNodeIdDevice);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getObjectSize(LONG64 *aObjectSize);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getType(FsObjType_T *aType);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getUID(ULONG *aUID);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getUserFlags(ULONG *aUserFlags);
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync HRESULT getUserName(com::Utf8Str &aUserName);
8d9dcfac5d32ad4c7ddc2f16980419bdc132efe5vboxsync /** @} */
24a1823983f5efc3cf0dc13b099c30947cd325bcvboxsync
e378dfdadd62aadc0a012c9953322d979d7606e6vboxsync GuestFsObjData mData;
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync};
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync#endif /* !____H_GUESTFSOBJINFOIMPL */
2f3883b126a405f92b19e829472f614c7352b4f9vboxsync