gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r18233 - in gnunet-java/src/org/gnunet: construct messages


From: gnunet
Subject: [GNUnet-SVN] r18233 - in gnunet-java/src/org/gnunet: construct messages util
Date: Mon, 21 Nov 2011 13:19:21 +0100

Author: grothoff
Date: 2011-11-21 13:19:21 +0100 (Mon, 21 Nov 2011)
New Revision: 18233

Added:
   gnunet-java/src/org/gnunet/messages/Message.java
   gnunet-java/src/org/gnunet/messages/QueryMessage.java
Modified:
   gnunet-java/src/org/gnunet/construct/Construct.java
   gnunet-java/src/org/gnunet/construct/Parser.java
   gnunet-java/src/org/gnunet/construct/UnsignedIntegerParser.java
   gnunet-java/src/org/gnunet/messages/ComplexTestMessage.java
   gnunet-java/src/org/gnunet/messages/MessageHeader.java
   gnunet-java/src/org/gnunet/messages/RelativeTimeNBO.java
   gnunet-java/src/org/gnunet/messages/SimpleTestMessage2.java
   gnunet-java/src/org/gnunet/util/Program.java
Log:
discussions...

Modified: gnunet-java/src/org/gnunet/construct/Construct.java
===================================================================
--- gnunet-java/src/org/gnunet/construct/Construct.java 2011-11-21 10:59:53 UTC 
(rev 18232)
+++ gnunet-java/src/org/gnunet/construct/Construct.java 2011-11-21 12:19:21 UTC 
(rev 18233)
@@ -45,6 +45,7 @@
     @Retention(RetentionPolicy.RUNTIME)
     @Target(ElementType.FIELD)
     public @interface Nested {
+        boolean header() default false;
     }
 
     /**

Modified: gnunet-java/src/org/gnunet/construct/Parser.java
===================================================================
--- gnunet-java/src/org/gnunet/construct/Parser.java    2011-11-21 10:59:53 UTC 
(rev 18232)
+++ gnunet-java/src/org/gnunet/construct/Parser.java    2011-11-21 12:19:21 UTC 
(rev 18233)
@@ -12,6 +12,9 @@
      * @return number of bytes parsed
      */
     public int parse(byte[] src_data, int offset, Location[] dst);
+    // public int parse(byte[] src_data, int offset, Object dst); // Field 'f' 
is part of parser instance
+    
+    
 
     /**
      * 
@@ -20,7 +23,9 @@
      * @param src
      * @return number of bytes unparsed
      */
+    // 'write'? 'serialize'? 
     public int unparse(byte[] dst_data, int offset, Location[] src);
+    // public int write(byte[] src_data, int offset, Object src); // Field 'f' 
is part of parser instance
     
     
     /**
@@ -28,6 +33,7 @@
      * @param args
      * @return
      */
-    public int estimateSize(Location[] args);
+    public int estimateSize(Location[] args); // not estimate! calculate! 
+    // public int sizeof(Object src); // Field 'f' is part of parser instance
 
 }

Modified: gnunet-java/src/org/gnunet/construct/UnsignedIntegerParser.java
===================================================================
--- gnunet-java/src/org/gnunet/construct/UnsignedIntegerParser.java     
2011-11-21 10:59:53 UTC (rev 18232)
+++ gnunet-java/src/org/gnunet/construct/UnsignedIntegerParser.java     
2011-11-21 12:19:21 UTC (rev 18233)
@@ -45,6 +45,7 @@
         } else {
 
             int bit_size;
+            
             if (loc.getType().equals(Integer.TYPE)) {
                 loc.put(num.intValue());
                 bit_size = 32;
@@ -54,6 +55,10 @@
             } else if (loc.getType().equals(Short.TYPE)) {
                 loc.put(num.shortValue());
                 bit_size = 16;
+            } else if (loc.getType().equals(Character.TYPE)) {
+                loc.put((char) num.intValue());
+                bit_size = 16;
+                allow_sign = true; // data type is signed...
             } else if (loc.getType().equals(Byte.TYPE)) {
                 loc.put(num.byteValue());
                 bit_size = 8;

Modified: gnunet-java/src/org/gnunet/messages/ComplexTestMessage.java
===================================================================
--- gnunet-java/src/org/gnunet/messages/ComplexTestMessage.java 2011-11-21 
10:59:53 UTC (rev 18232)
+++ gnunet-java/src/org/gnunet/messages/ComplexTestMessage.java 2011-11-21 
12:19:21 UTC (rev 18233)
@@ -12,15 +12,31 @@
 import org.gnunet.construct.UnsignedIntegerParser;
 import org.gnunet.construct.VariableSizeArrayParser;
 
-public class ComplexTestMessage {
+public class ComplexTestMessage implements Message  {
 
     @UnsignedInteger(2)
     int someNumber;
 
-    @FixedSizeArray(length = 5)
-    @UnsignedInteger(2)
+    @FixedSizeArray(length = 5)    
+    @UnsignedInteger(2) // BAD!
     int[] someArray;
+
+    // @FixedSizeArrayUint32_t(length = 5)
+    int[] someArray3;
+
     
+    @FixedSizeArray(length = 5)    
+    UnsignedIntegerBox[] someArray2;
+    
+    static class UnsignedIntegerBox implements Message {
+        @UnsignedInteger(2)
+        int my_value;
+    }
+    
+    @FixedSizeArray(length = 5)    
+    SimpleTestMessage[] someArray5;
+    
+    
     @Nested
     SimpleTestMessage msg;
     
@@ -39,6 +55,8 @@
     @TotalSize
     @UnsignedInteger(2)
     int storedMySize;
+       
+    
 
     // this should work fully automatic
     public static ObjectParser makeParser() throws SecurityException,

Added: gnunet-java/src/org/gnunet/messages/Message.java
===================================================================
--- gnunet-java/src/org/gnunet/messages/Message.java                            
(rev 0)
+++ gnunet-java/src/org/gnunet/messages/Message.java    2011-11-21 12:19:21 UTC 
(rev 18233)
@@ -0,0 +1,8 @@
+package org.gnunet.messages;
+
+/**
+ * Base interface for all messages (anything that 'Construct' can serialize or 
deserialize).
+ * Really just an annotation, but also for sanity checking by the compiler.
+ */
+public interface Message {
+}

Modified: gnunet-java/src/org/gnunet/messages/MessageHeader.java
===================================================================
--- gnunet-java/src/org/gnunet/messages/MessageHeader.java      2011-11-21 
10:59:53 UTC (rev 18232)
+++ gnunet-java/src/org/gnunet/messages/MessageHeader.java      2011-11-21 
12:19:21 UTC (rev 18233)
@@ -1,21 +1,20 @@
 package org.gnunet.messages;
 
-import org.gnunet.construct.Construct.Fill;
 import org.gnunet.construct.Construct.TotalSize;
 import org.gnunet.construct.Construct.UnsignedInteger;
 
-public class MessageHeader {
+public class MessageHeader implements Message {
 
     @TotalSize
-       @UnsignedInteger(2)
+       // @UnsignedInteger(2)
        public int size;
        
     @UnsignedInteger(2)
     public int type;
     
     
-    @Fill
-    @UnsignedInteger(1)
-    public byte[] body;
+    // @Fill
+    // @UnsignedInteger(1)
+    // public byte[] body;
        
 }

Added: gnunet-java/src/org/gnunet/messages/QueryMessage.java
===================================================================
--- gnunet-java/src/org/gnunet/messages/QueryMessage.java                       
        (rev 0)
+++ gnunet-java/src/org/gnunet/messages/QueryMessage.java       2011-11-21 
12:19:21 UTC (rev 18233)
@@ -0,0 +1,35 @@
+package org.gnunet.messages;
+
+import org.gnunet.construct.Construct.Fill;
+import org.gnunet.construct.Construct.Nested;
+import org.gnunet.construct.Construct.UnsignedInteger;
+
+public class QueryMessage implements Message {
+    
+    @Nested(header = true)
+    MessageHeader header;
+    
+    @UnsignedInteger(2)
+    int query;
+
+    @Nested
+    MessageBar embedded;
+
+    @Fill    
+    public char[] varsize;
+ 
+    
+    static class MessageBar implements Message 
+    {
+
+        @Nested(header = true)
+        MessageHeader header;
+        
+        @UnsignedInteger(2)
+        int query;
+
+        @Fill    
+        public char[] varsize;
+
+    }
+}

Modified: gnunet-java/src/org/gnunet/messages/RelativeTimeNBO.java
===================================================================
--- gnunet-java/src/org/gnunet/messages/RelativeTimeNBO.java    2011-11-21 
10:59:53 UTC (rev 18232)
+++ gnunet-java/src/org/gnunet/messages/RelativeTimeNBO.java    2011-11-21 
12:19:21 UTC (rev 18233)
@@ -3,7 +3,7 @@
 import org.gnunet.construct.Construct.UnsignedInteger;
 import org.gnunet.util.RelativeTime;
 
-public class RelativeTimeNBO {
+public class RelativeTimeNBO implements Message  {
 
     /**
      * Value__ still in Java-byte order, needs to be converted to Network byte

Modified: gnunet-java/src/org/gnunet/messages/SimpleTestMessage2.java
===================================================================
--- gnunet-java/src/org/gnunet/messages/SimpleTestMessage2.java 2011-11-21 
10:59:53 UTC (rev 18232)
+++ gnunet-java/src/org/gnunet/messages/SimpleTestMessage2.java 2011-11-21 
12:19:21 UTC (rev 18233)
@@ -7,7 +7,10 @@
     @UnsignedInteger(4)
     public long value;
     
+    //@VariableSizeArray("v1")
+    //int[] arr;
     
+    
     @Override
     public boolean equals(Object obj) {
         if (!(obj instanceof SimpleTestMessage2)) {

Modified: gnunet-java/src/org/gnunet/util/Program.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Program.java        2011-11-21 10:59:53 UTC 
(rev 18232)
+++ gnunet-java/src/org/gnunet/util/Program.java        2011-11-21 12:19:21 UTC 
(rev 18233)
@@ -1,5 +1,7 @@
 package org.gnunet.util;
 
 public class Program {
+    
+   
 
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]