VirtualBox

source: vbox/trunk/src/VBox/Main/include/GuestFsInfoImpl.h@ 99739

Last change on this file since 99739 was 99262, checked in by vboxsync, 21 months ago

Guest Control: Implements IGuestSession::fsQueryInfo() and IGuestSession::fsQueryFreeSpace(). bugref:10414

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1/* $Id: GuestFsInfoImpl.h 99262 2023-04-03 15:17:07Z vboxsync $ */
2/** @file
3 * VirtualBox Main - Guest file system information implementation.
4 */
5
6/*
7 * Copyright (C) 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_GuestFsInfoImpl_h
29#define MAIN_INCLUDED_GuestFsInfoImpl_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34#include "GuestFsInfoWrap.h"
35#include "GuestCtrlImplPrivate.h"
36
37class ATL_NO_VTABLE GuestFsInfo
38 : public GuestFsInfoWrap
39{
40public:
41 /** @name COM and internal init/term/mapping cruft.
42 * @{ */
43 DECLARE_COMMON_CLASS_METHODS(GuestFsInfo)
44
45 int init(PCGSTCTLFSINFO pFsInfo);
46 void uninit(void);
47
48 HRESULT FinalConstruct(void);
49 void FinalRelease(void);
50 /** @} */
51
52 /** @name Internal access helpers.
53 * @{ */
54 const GSTCTLFSINFO &i_getData() const { return mData; }
55 /** @} */
56
57private:
58
59 /** Wrapped @name IGuestFsInfo properties.
60 * @{ */
61 HRESULT getFreeSize(LONG64 *aFreeSize);
62 HRESULT getTotalSize(LONG64 *aTotalSize);
63 HRESULT getBlockSize(ULONG *aBlockSize);
64 HRESULT getSectorSize(ULONG *aSectorSize);
65 HRESULT getSerialNumber(ULONG *aSerialNumber);
66 HRESULT getIsRemote(BOOL *aIsRemote);
67 HRESULT getIsCaseSensitive(BOOL *aIsCaseSensitive);
68 HRESULT getIsReadOnly(BOOL *aIsReadOnly);
69 HRESULT getIsCompressed(BOOL *aIsCompressed);
70 HRESULT getSupportsFileCompression(BOOL *aSupportsFileCompression);
71 HRESULT getMaxComponent(ULONG *aMaxComponent);
72 HRESULT getType(com::Utf8Str &aType);
73 HRESULT getLabel(com::Utf8Str &aLabel);
74 HRESULT getMountPoint(com::Utf8Str &aMountPoint);
75 /** @} */
76
77 GSTCTLFSINFO mData;
78};
79
80#endif /* !MAIN_INCLUDED_GuestFsInfoImpl_h */
81
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