Gnash
0.8.11dev
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
libcore
ClassHierarchy.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
3
// Free Software Foundation, Inc.
4
//
5
// This program is free software; you can redistribute it and/or modify
6
// it under the terms of the GNU General Public License as published by
7
// the Free Software Foundation; either version 3 of the License, or
8
// (at your option) any later version.
9
//
10
// This program is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU General Public License for more details.
14
//
15
// You should have received a copy of the GNU General Public License
16
// along with this program; if not, write to the Free Software
17
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
//
19
20
#ifndef GNASH_CLASS_HIERARCHY_H
21
#define GNASH_CLASS_HIERARCHY_H
22
23
#ifdef HAVE_CONFIG_H
24
#include "
gnashconfig.h
"
25
#endif
26
27
#include <string>
28
#include <vector>
29
30
#include "
ObjectURI.h
"
31
32
namespace
gnash {
33
class
Extension;
34
class
as_object;
35
}
36
37
namespace
gnash {
38
40
class
ClassHierarchy
41
{
42
public
:
43
struct
ExtensionClass
44
{
46
std::string
file_name
;
47
56
std::string
init_name
;
57
58
const
ObjectURI
uri
;
59
61
int
version
;
62
};
63
64
struct
NativeClass
65
{
66
68
typedef
void (*
InitFunc
)(
as_object
& obj,
const
ObjectURI
&
uri
);
69
70
NativeClass
(
InitFunc
init,
const
ObjectURI
&
u
,
int
ver)
71
:
72
initializer
(init),
73
uri
(u),
74
version
(ver)
75
{}
76
80
InitFunc
initializer
;
81
83
const
ObjectURI
uri
;
84
86
int
version
;
87
};
88
92
ClassHierarchy
(
as_object
* global,
Extension
*
e
)
93
:
94
mGlobal(global),
95
mExtension(e)
96
{}
97
100
~ClassHierarchy
();
101
102
typedef
std::vector<NativeClass>
NativeClasses
;
103
110
bool
declareClass
(
const
NativeClass
&
c
);
111
113
void
declareAll
(
const
NativeClasses
& classes);
114
116
void
markReachableResources
()
const
{}
117
118
private
:
119
as_object
* mGlobal;
120
Extension
* mExtension;
121
};
122
123
}
124
#endif
125
Generated on Mon Sep 9 2013 23:08:38 for Gnash by
1.8.4