Main Page
Related Pages
Classes
Files
File List
core
ref_ptr.h
1
/*************************************************************************/
2
/* ref_ptr.h */
3
/*************************************************************************/
4
/* This file is part of: */
5
/* GODOT ENGINE */
6
/* http://www.godotengine.org */
7
/*************************************************************************/
8
/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
9
/* */
10
/* Permission is hereby granted, free of charge, to any person obtaining */
11
/* a copy of this software and associated documentation files (the */
12
/* "Software"), to deal in the Software without restriction, including */
13
/* without limitation the rights to use, copy, modify, merge, publish, */
14
/* distribute, sublicense, and/or sell copies of the Software, and to */
15
/* permit persons to whom the Software is furnished to do so, subject to */
16
/* the following conditions: */
17
/* */
18
/* The above copyright notice and this permission notice shall be */
19
/* included in all copies or substantial portions of the Software. */
20
/* */
21
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
22
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
23
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
24
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
25
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
26
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
27
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
28
/*************************************************************************/
29
#ifndef REF_PTR_H
30
#define REF_PTR_H
31
37
#include "rid.h"
38
39
40
class
RefPtr
{
41
42
enum
{
43
44
DATASIZE=
sizeof
(
void
*)
//*4 -ref was shrunk
45
};
46
47
mutable
char
data[DATASIZE];
// too much probably, virtual class + pointer
48
public
:
49
50
bool
is_null()
const
;
51
void
operator=(
const
RefPtr
& p_other);
52
bool
operator==(
const
RefPtr
& p_other)
const
;
53
RID
get_rid()
const
;
54
void
unref();
55
_FORCE_INLINE_
void
*get_data()
const
{
return
data; }
56
RefPtr
(
const
RefPtr
& p_other);
57
RefPtr
();
58
~
RefPtr
();
59
60
};
61
62
#endif // REF_PTR_H
RefPtr
Definition:
ref_ptr.h:40
RID
Definition:
rid.h:47
Generated on Wed Jul 13 2016 13:20:59 by
1.8.11