@@ -64,8 +64,19 @@ public final class Model extends Table {
64
64
public io .objectbox .model .IdUid lastSequenceId (io .objectbox .model .IdUid obj ) { int o = __offset (16 ); return o != 0 ? obj .__assign (o + bb_pos , bb ) : null ; }
65
65
public io .objectbox .model .IdUid lastRelationId () { return lastRelationId (new io .objectbox .model .IdUid ()); }
66
66
public io .objectbox .model .IdUid lastRelationId (io .objectbox .model .IdUid obj ) { int o = __offset (18 ); return o != 0 ? obj .__assign (o + bb_pos , bb ) : null ; }
67
+ /**
68
+ * Hash of the model/schema; usually want to check hashes before even creating a model and thus avoiding creating
69
+ * the model altogether. But, at least for now, let language bindings provide it via the model optionally.
70
+ * We use SipHash 128 (16 bytes).
71
+ */
72
+ public int hash (int j ) { int o = __offset (20 ); return o != 0 ? bb .get (__vector (o ) + j * 1 ) & 0xFF : 0 ; }
73
+ public int hashLength () { int o = __offset (20 ); return o != 0 ? __vector_len (o ) : 0 ; }
74
+ public ByteVector hashVector () { return hashVector (new ByteVector ()); }
75
+ public ByteVector hashVector (ByteVector obj ) { int o = __offset (20 ); return o != 0 ? obj .__assign (__vector (o ), bb ) : null ; }
76
+ public ByteBuffer hashAsByteBuffer () { return __vector_as_bytebuffer (20 , 1 ); }
77
+ public ByteBuffer hashInByteBuffer (ByteBuffer _bb ) { return __vector_in_bytebuffer (_bb , 20 , 1 ); }
67
78
68
- public static void startModel (FlatBufferBuilder builder ) { builder .startTable (8 ); }
79
+ public static void startModel (FlatBufferBuilder builder ) { builder .startTable (9 ); }
69
80
public static void addModelVersion (FlatBufferBuilder builder , long modelVersion ) { builder .addInt (0 , (int )modelVersion , (int )0L ); }
70
81
public static void addName (FlatBufferBuilder builder , int nameOffset ) { builder .addOffset (1 , nameOffset , 0 ); }
71
82
public static void addVersion (FlatBufferBuilder builder , long version ) { builder .addLong (2 , version , 0L ); }
@@ -76,6 +87,10 @@ public final class Model extends Table {
76
87
public static void addLastIndexId (FlatBufferBuilder builder , int lastIndexIdOffset ) { builder .addStruct (5 , lastIndexIdOffset , 0 ); }
77
88
public static void addLastSequenceId (FlatBufferBuilder builder , int lastSequenceIdOffset ) { builder .addStruct (6 , lastSequenceIdOffset , 0 ); }
78
89
public static void addLastRelationId (FlatBufferBuilder builder , int lastRelationIdOffset ) { builder .addStruct (7 , lastRelationIdOffset , 0 ); }
90
+ public static void addHash (FlatBufferBuilder builder , int hashOffset ) { builder .addOffset (8 , hashOffset , 0 ); }
91
+ public static int createHashVector (FlatBufferBuilder builder , byte [] data ) { return builder .createByteVector (data ); }
92
+ public static int createHashVector (FlatBufferBuilder builder , ByteBuffer data ) { return builder .createByteVector (data ); }
93
+ public static void startHashVector (FlatBufferBuilder builder , int numElems ) { builder .startVector (1 , numElems , 1 ); }
79
94
public static int endModel (FlatBufferBuilder builder ) {
80
95
int o = builder .endTable ();
81
96
return o ;
0 commit comments