VirtualBox

source: vbox/trunk/src/VBox/Main/include/GuestFsObjInfoImpl.h@ 98341

Last change on this file since 98341 was 98103, checked in by vboxsync, 23 months ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.6 KB
Line 
1/* $Id: GuestFsObjInfoImpl.h 98103 2023-01-17 14:15:46Z vboxsync $ */
2/** @file
3 * VirtualBox Main - Guest file system object information implementation.
4 */
5
6/*
7 * Copyright (C) 2012-2023 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28#ifndef MAIN_INCLUDED_GuestFsObjInfoImpl_h
29#define MAIN_INCLUDED_GuestFsObjInfoImpl_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34#include "GuestFsObjInfoWrap.h"
35#include "GuestCtrlImplPrivate.h"
36
37class ATL_NO_VTABLE GuestFsObjInfo
38 : public GuestFsObjInfoWrap
39{
40public:
41 /** @name COM and internal init/term/mapping cruft.
42 * @{ */
43 DECLARE_COMMON_CLASS_METHODS(GuestFsObjInfo)
44
45 int init(const GuestFsObjData &objData);
46 void uninit(void);
47
48 HRESULT FinalConstruct(void);
49 void FinalRelease(void);
50 /** @} */
51
52 /** @name Internal access helpers.
53 * @{ */
54 const GuestFsObjData &i_getData() const { return mData; }
55 /** @} */
56
57private:
58
59 /** Wrapped @name IGuestFsObjInfo properties.
60 * @{ */
61 HRESULT getName(com::Utf8Str &aName);
62 HRESULT getType(FsObjType_T *aType);
63 HRESULT getFileAttributes(com::Utf8Str &aFileAttributes);
64 HRESULT getObjectSize(LONG64 *aObjectSize);
65 HRESULT getAllocatedSize(LONG64 *aAllocatedSize);
66 HRESULT getAccessTime(LONG64 *aAccessTime);
67 HRESULT getBirthTime(LONG64 *aBirthTime);
68 HRESULT getChangeTime(LONG64 *aChangeTime);
69 HRESULT getModificationTime(LONG64 *aModificationTime);
70 HRESULT getUID(LONG *aUID);
71 HRESULT getUserName(com::Utf8Str &aUserName);
72 HRESULT getGID(LONG *aGID);
73 HRESULT getGroupName(com::Utf8Str &aGroupName);
74 HRESULT getNodeId(LONG64 *aNodeId);
75 HRESULT getNodeIdDevice(ULONG *aNodeIdDevice);
76 HRESULT getHardLinks(ULONG *aHardLinks);
77 HRESULT getDeviceNumber(ULONG *aDeviceNumber);
78 HRESULT getGenerationId(ULONG *aGenerationId);
79 HRESULT getUserFlags(ULONG *aUserFlags);
80 /** @} */
81
82 GuestFsObjData mData;
83};
84
85#endif /* !MAIN_INCLUDED_GuestFsObjInfoImpl_h */
86
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette