0
|
1 /**
|
|
2 * Copyright: Copyright (c) 2010 Jacob Carlborg.
|
|
3 * Authors: Jacob Carlborg
|
|
4 * Version: Initial created: Jan 26, 2010
|
|
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
|
|
6 */
|
|
7 module orange.serialization.Events;
|
|
8
|
|
9 import orange.util._;
|
|
10
|
|
11 template OnDeserialized (alias method)
|
|
12 {
|
|
13 orange.serialization.Events.Event!(method) __onDeserialized;
|
|
14 }
|
|
15
|
|
16 template OnDeserializing (alias method)
|
|
17 {
|
|
18 orange.serialization.Events.Event!(method) __onDeserializing;
|
|
19 }
|
|
20
|
|
21 template OnSerialized (alias method)
|
|
22 {
|
|
23 orange.serialization.Events.Event!(method) __onSerialized;
|
|
24 }
|
|
25
|
|
26 template OnSerializing (alias method)
|
|
27 {
|
|
28 orange.serialization.Events.Event!(method) __onSerializing;
|
|
29 }
|
|
30
|
|
31 struct Event (alias m)
|
|
32 {
|
|
33 private const method = &m;
|
|
34
|
|
35 void opCall (T) (T value)
|
|
36 {
|
|
37 void delegate () dg;
|
|
38 dg.ptr = cast(void*) value;
|
|
39 dg.funcptr = method;
|
|
40 dg();
|
|
41 }
|
|
42 }
|
|
43
|
|
44 package const onDeserializedField = "__onDeserialized";
|
|
45 package const onDeserializingField = "__onDeserializing";
|
|
46 package const onSerializedField = "__onSerialized";
|
|
47 package const onSerializingField = "__onSerializing"; |