View Javadoc
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   * Convert one Event into an equivalent Sim0MQ Message, or back.
14   * <p>
15   * Copyright (c) 2020-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
16   * BSD-style license. See <a href="https://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
17   * </p>
18   * @author <a href="https://github.com/averbraeck">Alexander Verbraeck</a>
19   * @author <a href="https://github.com/peter-knoppers">Peter Knoppers</a>
20   * @author <a href="https://github.com/wjschakel">Wouter Schakel</a>
21   * @param <E> event type
22   */
23  public class EventSerializer<E extends Event> implements Serializer<Event>
24  {
25      /** The type of event that this EventSerializer handles. */
26      private final EventType eventType;
27  
28      /**
29       * Construct a new EventSerializer for the specified <code>EventType</code>.
30       * @param eventType the event type
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              // TODO: There has to be sme content here?
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          // TODO Auto-generated method stub
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          // TODO Auto-generated method stub
77  
78      }
79  
80      @Override
81      public Event deSerialize(final byte[] buffer, final Pointer pointer, final EndianUtil endianUtil)
82              throws SerializationException
83      {
84          // TODO Auto-generated method stub
85          return null;
86      }
87  
88      @Override
89      public String dataClassName()
90      {
91          // TODO Auto-generated method stub
92          return null;
93      }
94  
95      @Override
96      public final int getNumberOfDimensions()
97      {
98          return 0;
99      }
100 
101 }