VirtualBox

source: vbox/trunk/src/VBox/Main/include/AutostartDb.h@ 47148

Last change on this file since 47148 was 42178, checked in by vboxsync, 12 years ago

Autostart: Make the path to the autostart database configurable

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1/** @file
2 * Main - Autostart database Interfaces.
3 */
4
5/*
6 * Copyright (C) 2012 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 */
16
17#ifndef ___autostart_h
18#define ___autostart_h
19
20#include <iprt/cdefs.h>
21#include <iprt/types.h>
22#include <iprt/critsect.h>
23
24class AutostartDb
25{
26 public:
27
28 AutostartDb();
29 ~AutostartDb();
30
31 /**
32 * Sets the path to the autostart database.
33 *
34 * @returns VBox status code.
35 * @param pszAutostartDbPathNew Path to the autostart database.
36 */
37 int setAutostartDbPath(const char *pszAutostartDbPathNew);
38
39 /**
40 * Add a autostart VM to the global database.
41 *
42 * @returns VBox status code.
43 * @retval VERR_PATH_NOT_FOUND if the autostart database directory is not set.
44 * @param pszVMId ID of the VM to add.
45 */
46 int addAutostartVM(const char *pszVMId);
47
48 /**
49 * Remove a autostart VM from the global database.
50 *
51 * @returns VBox status code.
52 * @retval VERR_PATH_NOT_FOUND if the autostart database directory is not set.
53 * @param pszVMId ID of the VM to remove.
54 */
55 int removeAutostartVM(const char *pszVMId);
56
57 /**
58 * Add a autostop VM to the global database.
59 *
60 * @returns VBox status code.
61 * @retval VERR_PATH_NOT_FOUND if the autostart database directory is not set.
62 * @param pszVMId ID of the VM to add.
63 */
64 int addAutostopVM(const char *pszVMId);
65
66 /**
67 * Remove a autostop VM from the global database.
68 *
69 * @returns VBox status code.
70 * @retval VERR_PATH_NOT_FOUND if the autostart database directory is not set.
71 * @param pszVMId ID of the VM to remove.
72 */
73 int removeAutostopVM(const char *pszVMId);
74
75 private:
76
77#ifdef RT_OS_LINUX
78 /** Critical section protecting the database against concurrent access. */
79 RTCRITSECT CritSect;
80 /** Path to the autostart database. */
81 char *m_pszAutostartDbPath;
82
83 /**
84 * Autostart database modification worker.
85 *
86 * @returns VBox status code.
87 * @param fAutostart Flag whether the autostart or autostop database is modified.
88 * @param fAddVM Flag whether a VM is added or removed from the database.
89 */
90 int autostartModifyDb(bool fAutostart, bool fAddVM);
91#endif
92};
93
94#endif /* !___autostart_h */
95
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