From 53e20c8aa8b93668bbf36ba1ed00e52ead0b2d78 Mon Sep 17 00:00:00 2001
From: Sven Gestegard Robertz <sven.robertz@cs.lth.se>
Date: Fri, 23 Jan 2015 13:45:53 +0100
Subject: [PATCH] placeholder typedef encoding in java lib

---
 .../lth/control/labcomm/EncoderChannel.java   | 41 +++++++++++++------
 1 file changed, 29 insertions(+), 12 deletions(-)

diff --git a/lib/java/se/lth/control/labcomm/EncoderChannel.java b/lib/java/se/lth/control/labcomm/EncoderChannel.java
index 08f9c87..01330fe 100644
--- a/lib/java/se/lth/control/labcomm/EncoderChannel.java
+++ b/lib/java/se/lth/control/labcomm/EncoderChannel.java
@@ -27,19 +27,36 @@ public class EncoderChannel implements Encoder {
   }
 
   public void register(SampleDispatcher dispatcher) throws IOException {
-    if(dispatcher.getTypeDeclTag() == Constant.SAMPLE_DEF) {
-        int index = def_registry.add(dispatcher);
-        //begin(Constant.SAMPLE_DEF);
-        begin(dispatcher.getTypeDeclTag());
-        encodePacked32(index);
-        encodeString(dispatcher.getName());
-        byte[] signature = dispatcher.getSignature();
-        encodePacked32(signature.length);
-        for (int i = 0 ; i < signature.length ; i++) {
-        encodeByte(signature[i]);
+    switch (dispatcher.getTypeDeclTag())  {
+        case Constant.SAMPLE_DEF: {
+            int index = def_registry.add(dispatcher);
+            begin(dispatcher.getTypeDeclTag());
+            encodePacked32(index);
+            encodeString(dispatcher.getName());
+            byte[] signature = dispatcher.getSignature();
+            encodePacked32(signature.length);
+            for (int i = 0 ; i < signature.length ; i++) {
+                encodeByte(signature[i]);
+            }
+            end(null);
+            break;
         }
-        end(null);
-    }
+        case Constant.TYPE_DEF: {
+            int index = def_registry.add(dispatcher);
+            begin(dispatcher.getTypeDeclTag());
+            encodePacked32(index);
+            encodeString(dispatcher.getName());
+            byte[] signature = dispatcher.getSignature();
+            encodePacked32(8);
+            for (int i = 0 ; i < 8; i++) {
+                encodeByte((byte) 0xff);
+            }
+            end(null);
+            break;
+        }
+        default:
+            throw new Error("Unknown typeDeclTag: "+dispatcher.getTypeDeclTag());    
+    } 
   }
 
   public void registerSampleRef(SampleDispatcher dispatcher) throws IOException {
-- 
GitLab