VirtualBox

source: vbox/trunk/src/VBox/Main/src-client/GuestFsObjInfoImpl.cpp@ 77451

Last change on this file since 77451 was 76553, checked in by vboxsync, 6 years ago

scm --update-copyright-year

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.8 KB
Line 
1/* $Id: GuestFsObjInfoImpl.cpp 76553 2019-01-01 01:45:53Z vboxsync $ */
2/** @file
3 * VirtualBox Main - Guest file system object information handling.
4 */
5
6/*
7 * Copyright (C) 2012-2019 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18
19/*********************************************************************************************************************************
20* Header Files *
21*********************************************************************************************************************************/
22#define LOG_GROUP LOG_GROUP_MAIN_GUESTFSOBJINFO
23#include "LoggingNew.h"
24
25#ifndef VBOX_WITH_GUEST_CONTROL
26# error "VBOX_WITH_GUEST_CONTROL must defined in this file"
27#endif
28#include "GuestFsObjInfoImpl.h"
29#include "GuestCtrlImplPrivate.h"
30
31#include "Global.h"
32#include "AutoCaller.h"
33
34#include <VBox/com/array.h>
35
36
37
38// constructor / destructor
39/////////////////////////////////////////////////////////////////////////////
40
41DEFINE_EMPTY_CTOR_DTOR(GuestFsObjInfo)
42
43HRESULT GuestFsObjInfo::FinalConstruct(void)
44{
45 LogFlowThisFuncEnter();
46 return BaseFinalConstruct();
47}
48
49void GuestFsObjInfo::FinalRelease(void)
50{
51 LogFlowThisFuncEnter();
52 uninit();
53 BaseFinalRelease();
54 LogFlowThisFuncLeave();
55}
56
57// public initializer/uninitializer for internal purposes only
58/////////////////////////////////////////////////////////////////////////////
59
60int GuestFsObjInfo::init(const GuestFsObjData &objData)
61{
62 LogFlowThisFuncEnter();
63
64 /* Enclose the state transition NotReady->InInit->Ready. */
65 AutoInitSpan autoInitSpan(this);
66 AssertReturn(autoInitSpan.isOk(), VERR_OBJECT_DESTROYED);
67
68 mData = objData;
69
70 /* Confirm a successful initialization when it's the case. */
71 autoInitSpan.setSucceeded();
72
73 return VINF_SUCCESS;
74}
75
76/**
77 * Uninitializes the instance.
78 * Called from FinalRelease().
79 */
80void GuestFsObjInfo::uninit(void)
81{
82 /* Enclose the state transition Ready->InUninit->NotReady. */
83 AutoUninitSpan autoUninitSpan(this);
84 if (autoUninitSpan.uninitDone())
85 return;
86
87 LogFlowThisFuncEnter();
88}
89
90// implementation of wrapped private getters/setters for attributes
91/////////////////////////////////////////////////////////////////////////////
92
93HRESULT GuestFsObjInfo::getAccessTime(LONG64 *aAccessTime)
94{
95 *aAccessTime = mData.mAccessTime;
96
97 return S_OK;
98}
99
100HRESULT GuestFsObjInfo::getAllocatedSize(LONG64 *aAllocatedSize)
101{
102 *aAllocatedSize = mData.mAllocatedSize;
103
104 return S_OK;
105}
106
107HRESULT GuestFsObjInfo::getBirthTime(LONG64 *aBirthTime)
108{
109 *aBirthTime = mData.mBirthTime;
110
111 return S_OK;
112}
113
114HRESULT GuestFsObjInfo::getChangeTime(LONG64 *aChangeTime)
115{
116 *aChangeTime = mData.mChangeTime;
117
118 return S_OK;
119}
120
121
122
123HRESULT GuestFsObjInfo::getDeviceNumber(ULONG *aDeviceNumber)
124{
125 *aDeviceNumber = mData.mDeviceNumber;
126
127 return S_OK;
128}
129
130HRESULT GuestFsObjInfo::getFileAttributes(com::Utf8Str &aFileAttributes)
131{
132 aFileAttributes = mData.mFileAttrs;
133
134 return S_OK;
135}
136
137HRESULT GuestFsObjInfo::getGenerationId(ULONG *aGenerationId)
138{
139 *aGenerationId = mData.mGenerationID;
140
141 return S_OK;
142}
143
144HRESULT GuestFsObjInfo::getGID(LONG *aGID)
145{
146 *aGID = mData.mGID;
147
148 return S_OK;
149}
150
151HRESULT GuestFsObjInfo::getGroupName(com::Utf8Str &aGroupName)
152{
153 aGroupName = mData.mGroupName;
154
155 return S_OK;
156}
157
158HRESULT GuestFsObjInfo::getHardLinks(ULONG *aHardLinks)
159{
160 *aHardLinks = mData.mNumHardLinks;
161
162 return S_OK;
163}
164
165HRESULT GuestFsObjInfo::getModificationTime(LONG64 *aModificationTime)
166{
167 *aModificationTime = mData.mModificationTime;
168
169 return S_OK;
170}
171
172HRESULT GuestFsObjInfo::getName(com::Utf8Str &aName)
173{
174 aName = mData.mName;
175
176 return S_OK;
177}
178
179HRESULT GuestFsObjInfo::getNodeId(LONG64 *aNodeId)
180{
181 *aNodeId = mData.mNodeID;
182
183 return S_OK;
184}
185
186HRESULT GuestFsObjInfo::getNodeIdDevice(ULONG *aNodeIdDevice)
187{
188 *aNodeIdDevice = mData.mNodeIDDevice;
189
190 return S_OK;
191}
192
193HRESULT GuestFsObjInfo::getObjectSize(LONG64 *aObjectSize)
194{
195 *aObjectSize = mData.mObjectSize;
196
197 return S_OK;
198}
199
200HRESULT GuestFsObjInfo::getType(FsObjType_T *aType)
201{
202 *aType = mData.mType;
203
204 return S_OK;
205}
206
207HRESULT GuestFsObjInfo::getUID(LONG *aUID)
208{
209 *aUID = mData.mUID;
210
211 return S_OK;
212}
213
214HRESULT GuestFsObjInfo::getUserFlags(ULONG *aUserFlags)
215{
216 *aUserFlags = mData.mUserFlags;
217
218 return S_OK;
219}
220
221HRESULT GuestFsObjInfo::getUserName(com::Utf8Str &aUserName)
222{
223 aUserName = mData.mUserName;
224
225 return S_OK;
226}
227
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