VirtualBox

source: vbox/trunk/src/VBox/Main/include/GuestDirectoryImpl.h@ 71406

Last change on this file since 71406 was 71406, checked in by vboxsync, 7 years ago

Guest Control: Revamped internal object [un]registration and organization to provide faster lookups and avoid code duplication. No protocol changes.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1/* $Id: GuestDirectoryImpl.h 71406 2018-03-20 14:44:24Z vboxsync $ */
2/** @file
3 * VirtualBox Main - Guest directory handling implementation.
4 */
5
6/*
7 * Copyright (C) 2012-2018 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#ifndef ____H_GUESTDIRECTORYIMPL
19#define ____H_GUESTDIRECTORYIMPL
20
21#include "GuestDirectoryWrap.h"
22#include "GuestFsObjInfoImpl.h"
23#include "GuestProcessImpl.h"
24
25class GuestSession;
26
27/**
28 * TODO
29 */
30class ATL_NO_VTABLE GuestDirectory :
31 public GuestDirectoryWrap,
32 public GuestObject
33{
34public:
35 /** @name COM and internal init/term/mapping cruft.
36 * @{ */
37 DECLARE_EMPTY_CTOR_DTOR(GuestDirectory)
38
39 int init(Console *pConsole, GuestSession *pSession, ULONG aObjectID, const GuestDirectoryOpenInfo &openInfo);
40 void uninit(void);
41
42 HRESULT FinalConstruct(void);
43 void FinalRelease(void);
44 /** @} */
45
46public:
47 /** @name Public internal methods.
48 * @{ */
49 int i_callbackDispatcher(PVBOXGUESTCTRLHOSTCBCTX pCbCtx, PVBOXGUESTCTRLHOSTCALLBACK pSvcCb);
50 int i_onRemove(void);
51
52 int i_closeInternal(int *pGuestRc);
53 int i_readInternal(ComObjPtr<GuestFsObjInfo> &fsObjInfo, int *pGuestRc);
54 /** @} */
55
56public:
57 /** @name Public static internal methods.
58 * @{ */
59 static Utf8Str i_guestErrorToString(int guestRc);
60 static HRESULT i_setErrorExternal(VirtualBoxBase *pInterface, int guestRc);
61 /** @} */
62
63private:
64
65 /** Wrapped @name IGuestDirectory properties
66 * @{ */
67 HRESULT getDirectoryName(com::Utf8Str &aDirectoryName);
68 HRESULT getFilter(com::Utf8Str &aFilter);
69 /** @} */
70
71 /** Wrapped @name IGuestDirectory methods.
72 * @{ */
73 HRESULT close();
74 HRESULT read(ComPtr<IFsObjInfo> &aObjInfo);
75 /** @} */
76
77 struct Data
78 {
79 /** The directory's open info. */
80 GuestDirectoryOpenInfo mOpenInfo;
81 /** The process tool instance to use. */
82 GuestProcessTool mProcessTool;
83 } mData;
84};
85
86#endif /* !____H_GUESTDIRECTORYIMPL */
87
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