1 package org.opentrafficsim.sim0mq.publisher;
2
3 import org.djutils.event.Event;
4 import org.djutils.event.EventType;
5 import org.djutils.exceptions.Throw;
6 import org.djutils.metadata.MetaData;
7 import org.djutils.serialization.EndianUtil;
8 import org.djutils.serialization.SerializationException;
9 import org.djutils.serialization.serializers.Pointer;
10 import org.djutils.serialization.serializers.Serializer;
11
12
13
14
15
16
17
18
19
20
21
22
23 public class EventSerializer<E extends Event> implements Serializer<Event>
24 {
25
26 private final EventType eventType;
27
28
29
30
31
32 EventSerializer(final EventType eventType)
33 {
34 this.eventType = eventType;
35 }
36
37 @Override
38 public int size(final Event event) throws SerializationException
39 {
40 EventType et = event.getType();
41 Throw.when(et.equals(this.eventType), ClassCastException.class,
42 "EventSerializer for " + this.eventType.getName() + " cannot handle event " + event);
43 int result = et.getName().length();
44 MetaData metaData = this.eventType.getMetaData();
45 for (int index = 0; index < metaData.size(); index++)
46 {
47
48 }
49 return result;
50 }
51
52 @Override
53 public int sizeWithPrefix(final Event event) throws SerializationException
54 {
55 return 1 + size(event);
56 }
57
58 @Override
59 public byte fieldType()
60 {
61 return 33;
62 }
63
64 @Override
65 public void serialize(final Event object, final byte[] buffer, final Pointer pointer, final EndianUtil endianUtil)
66 throws SerializationException
67 {
68
69
70 }
71
72 @Override
73 public void serializeWithPrefix(final Event object, final byte[] buffer, final Pointer pointer, final EndianUtil endianUtil)
74 throws SerializationException
75 {
76
77
78 }
79
80 @Override
81 public Event deSerialize(final byte[] buffer, final Pointer pointer, final EndianUtil endianUtil)
82 throws SerializationException
83 {
84
85 return null;
86 }
87
88 @Override
89 public String dataClassName()
90 {
91
92 return null;
93 }
94
95 @Override
96 public final int getNumberOfDimensions()
97 {
98 return 0;
99 }
100
101 }