From 57c84e53c222a052c1124b548ed129452eb8f314 Mon Sep 17 00:00:00 2001
From: Sven Gestegard Robertz <sven.robertz@cs.lth.se>
Date: Fri, 30 Jan 2015 14:59:41 +0100
Subject: [PATCH] Send TYPE_DEF also for primitive types

---
 compiler/2014/Signature.jrag                      | 14 +++++++-------
 examples/user_types/ExampleDecoder.cs             | 12 +++++++++++-
 lib/c/2014/test/test_labcomm_generated_encoding.c |  2 +-
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/compiler/2014/Signature.jrag b/compiler/2014/Signature.jrag
index 5395095..53d59b6 100644
--- a/compiler/2014/Signature.jrag
+++ b/compiler/2014/Signature.jrag
@@ -184,17 +184,17 @@ aspect Signature {
   }
 
   public void UserType.genSigLineForDecl(SignatureList list, boolean decl) {
-    if(decl){
-     //System.out.println("************ UserType.genSigLine("+decl+").... for "+getName());
-      TypeDecl thet=lookupType(getName());
-      //System.out.println("************ thet: "+thet.getName() +":"+thet.getType());
-      thet.genSigLineForDecl(list, decl);
-    }else{
+//    if(decl){
+//     //System.out.println("************ UserType.genSigLine("+decl+").... for "+getName());
+//      TypeDecl thet=lookupType(getName());
+//      //System.out.println("************ thet: "+thet.getName() +":"+thet.getType());
+//      thet.genSigLineForDecl(list, decl);
+//    }else{
      //System.out.println("************ UserType.genSigLine("+decl+").... for "+getName());
       TypeDecl thet = lookupType(getName());
      // System.out.println("************ thet: "+thet.getName() +":"+thet.getType());
       list.addTypeRef(thet, null);
-    }
+//    }
   }
 
   public void ArrayType.genSigLineForDecl(SignatureList list, boolean decl) {
diff --git a/examples/user_types/ExampleDecoder.cs b/examples/user_types/ExampleDecoder.cs
index d33873b..2b4ef09 100644
--- a/examples/user_types/ExampleDecoder.cs
+++ b/examples/user_types/ExampleDecoder.cs
@@ -7,7 +7,10 @@ using se.lth.control.labcomm;
 
 namespace user_types
 {
-    class Decoder : twoLines.Handler, twoInts.Handler 
+    class Decoder : twoLines.Handler, 
+                    twoInts.Handler, 
+                    theFirstInt.Handler, 
+                    theSecondInt.Handler
     {
         DecoderChannel dec;
 
@@ -16,6 +19,8 @@ namespace user_types
             dec = new DecoderChannel(stream);
             twoLines.register(dec, this);
             twoInts.register(dec, this);
+            theFirstInt.register(dec, this);
+            theSecondInt.register(dec, this);
             try
             {
                 Console.WriteLine("Running decoder.");
@@ -49,6 +54,11 @@ namespace user_types
             Console.WriteLine("b: "+d.b);
         }
 
+        public void handle(int d)
+        {
+            Console.WriteLine("Got int: "+d);
+        }
+
         static void Main(string[] args)
         {
             new Decoder(new FileStream(args[0], FileMode.Open));
diff --git a/lib/c/2014/test/test_labcomm_generated_encoding.c b/lib/c/2014/test/test_labcomm_generated_encoding.c
index 247a69d..11f9d7c 100644
--- a/lib/c/2014/test/test_labcomm_generated_encoding.c
+++ b/lib/c/2014/test/test_labcomm_generated_encoding.c
@@ -215,7 +215,7 @@ int main(void)
   labcomm_encoder_register_generated_encoding_V(encoder);
   EXPECT({ 0x02, 0x06, VARIABLE(0), 0x01, 'V', 0x02, 0x11, 0x00,
            0x04, 0x08, VARIABLE(1), 0x03, 'v', '_', 't', 0x02, 0x11, 0x00,
-           0x04, 0x04, VARIABLE(2), 0x01, 'V', VARIABLE(1),
+           0x04, 0x05, VARIABLE(2), 0x01, 'V', 0x01, VARIABLE(1),
            0x05, 0x02, VARIABLE(0), VARIABLE(2) });
 
   labcomm_encoder_ioctl(encoder, IOCTL_WRITER_RESET);
-- 
GitLab