ClanLib
2.3.7
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
Sources
API
Network
NetGame
event_value.h
Go to the documentation of this file.
1
/*
2
** ClanLib SDK
3
** Copyright (c) 1997-2011 The ClanLib Team
4
**
5
** This software is provided 'as-is', without any express or implied
6
** warranty. In no event will the authors be held liable for any damages
7
** arising from the use of this software.
8
**
9
** Permission is granted to anyone to use this software for any purpose,
10
** including commercial applications, and to alter it and redistribute it
11
** freely, subject to the following restrictions:
12
**
13
** 1. The origin of this software must not be misrepresented; you must not
14
** claim that you wrote the original software. If you use this software
15
** in a product, an acknowledgment in the product documentation would be
16
** appreciated but is not required.
17
** 2. Altered source versions must be plainly marked as such, and must not be
18
** misrepresented as being the original software.
19
** 3. This notice may not be removed or altered from any source distribution.
20
**
21
** Note: Some of the libraries ClanLib may link to may have additional
22
** requirements or restrictions.
23
**
24
** File Author(s):
25
**
26
** Magnus Norddahl
27
*/
28
31
32
#pragma once
33
34
#include "../api_network.h"
35
39
class
CL_API_NETWORK
CL_NetGameEventValue
40
{
41
public
:
42
enum
Type
43
{
44
null
,
45
integer
,
46
uinteger
,
47
string
,
48
boolean
,
49
number
,
50
complex
51
};
52
53
CL_NetGameEventValue
();
54
58
CL_NetGameEventValue
(
int
value);
59
63
CL_NetGameEventValue
(
unsigned
int
value);
64
68
CL_NetGameEventValue
(
float
value);
69
73
CL_NetGameEventValue
(
const
CL_String
&value);
74
78
CL_NetGameEventValue
(
const
CL_StringRef
&value);
79
83
CL_NetGameEventValue
(
const
char
*str);
84
88
CL_NetGameEventValue
(
const
wchar_t
*str);
89
explicit
CL_NetGameEventValue
(
bool
value);
90
94
CL_NetGameEventValue
(Type type);
95
99
Type get_type()
const
;
100
104
bool
is_null()
const
;
105
109
bool
is_uinteger()
const
;
110
114
bool
is_integer()
const
;
115
119
bool
is_number()
const
;
120
124
bool
is_string()
const
;
125
129
bool
is_boolean()
const
;
130
134
bool
is_complex()
const
;
135
136
unsigned
int
get_member_count()
const
;
137
const
CL_NetGameEventValue
&get_member(
unsigned
int
index)
const
;
138
142
void
add_member(
const
CL_NetGameEventValue
&value);
143
148
void
set_member(
unsigned
int
index,
const
CL_NetGameEventValue
&value);
149
150
unsigned
int
to_uinteger()
const
;
151
155
int
to_integer()
const
;
156
160
float
to_number()
const
;
161
165
CL_String
to_string()
const
;
166
170
bool
to_boolean()
const
;
171
172
inline
operator
unsigned
int()
const
{
return
to_uinteger(); }
173
inline
operator
int()
const
{
return
to_integer(); }
174
inline
operator
float()
const
{
return
to_number(); }
175
inline
operator
CL_String
()
const
{
return
to_string(); }
176
inline
operator
bool()
const
{
return
to_boolean(); }
177
178
private
:
179
181
void
throw_if_not_complex()
const
;
182
183
Type type;
184
union
185
{
186
int
value_int
;
187
unsigned
int
value_uint
;
188
float
value_float
;
189
bool
value_bool
;
190
};
191
CL_String
value_string;
192
std::vector<CL_NetGameEventValue> value_complex;
193
};
194
196
Generated on Fri Jun 14 2013 13:05:45 for ClanLib by
1.8.4