[Top][All Lists]
[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 {
+
+
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18233 - in gnunet-java/src/org/gnunet: construct messages util,
gnunet <=