CACAO
package.hpp
Go to the documentation of this file.
1 /* src/vm/package.hpp - Java boot-package functions
2 
3  Copyright (C) 1996-2013
4  CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5 
6  This file is part of CACAO.
7 
8  This program is free software; you can redistribute it and/or
9  modify it under the terms of the GNU General Public License as
10  published by the Free Software Foundation; either version 2, or (at
11  your option) any later version.
12 
13  This program is distributed in the hope that it will be useful, but
14  WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program; if not, write to the Free Software
20  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  02110-1301, USA.
22 
23 */
24 
25 
26 #ifndef PACKAGE_HPP_
27 #define PACKAGE_HPP_ 1
28 
29 #include <set>
30 
31 #include "config.h"
32 #include "threads/mutex.hpp"
33 #include "vm/utf8.hpp"
34 
35 /**
36  *
37  */
38 class Package {
39 public:
40  static void lock() { _mutex.lock(); }
41  static void unlock() { _mutex.unlock(); }
42 
43  static void add (Utf8String packagename);
44  static Utf8String find(Utf8String packagename);
45 
46  static const std::set<Utf8String> &packages();
47 
48 private:
49  static Mutex _mutex;
50 };
51 
52 #endif // VM_PACKAGE_HPP_
53 
54 
55 /*
56  * These are local overrides for various environment variables in Emacs.
57  * Please do not remove this and leave it at the end of the file, where
58  * Emacs will automagically detect them.
59  * ---------------------------------------------------------------------
60  * Local variables:
61  * mode: c++
62  * indent-tabs-mode: t
63  * c-basic-offset: 4
64  * tab-width: 4
65  * End:
66  * vim:noexpandtab:sw=4:ts=4:
67  */
static void unlock()
Definition: package.hpp:41
Dummy implementation of a mutex.
Definition: mutex-none.hpp:33
static Mutex _mutex
Definition: package.hpp:49
static Utf8String find(Utf8String packagename)
Find a package in the list.
Definition: package.cpp:77
static void lock()
Definition: package.hpp:40
static const std::set< Utf8String > & packages()
Definition: package.cpp:90
void unlock()
Unlocks the given mutex object and checks for errors.
Definition: mutex-none.hpp:36
static void add(Utf8String packagename)
Add a package to the boot-package list.
Definition: package.cpp:51
void lock()
Locks the given mutex object and checks for errors.
Definition: mutex-none.hpp:35