structOut.writeInt(Field.STATUS, status);
public boolean productUpdate(HTTPRequestReader request) { StructuredReader source = request.structured(); return publishService.publishTopic((w)->{ //write update message with new payload plus sequence and connectionID StructuredWriter target = w.structured(); target.writeInt(Field.ID, source.readInt(Field.ID)); target.writeInt(Field.QUANTITY, source.readInt(Field.QUANTITY)); target.writeBoolean(Field.DISABLED, source.readBoolean(Field.DISABLED)); //source.readText(Field.NAME, target.writeText(Field.NAME)); //Broken?? target.writeText(Field.NAME, source.readText(Field.NAME)); target.writeLong(Field.CONNECTION, request.getConnectionId()); target.writeLong(Field.SEQUENCE, request.getSequenceCode()); target.selectStruct(Struct.DB_PRODUCT_UPDATE); }); }
public boolean productQuery(HTTPRequestReader request) { StructuredReader source = request.structured(); return publishService.publishTopic((w)->{ StructuredWriter target = w.structured(); target.writeInt(Field.ID, source.readInt(Field.ID)); target.writeLong(Field.CONNECTION, request.getConnectionId()); target.writeLong(Field.SEQUENCE, request.getSequenceCode()); target.selectStruct(Struct.DB_PRODUCT_QUERY); }); }
/** * Reads int from specified field in pipe * @param association field association showing where to read * @return <code>true</code> if data exists, else <code>false</code> */ public boolean readInt(Object association, StructuredWriter output) { final long fieldId = Pipe.structRegistry(DataInputBlobReader.getBackingPipe(this.channelReader)).fieldLookupByIdentity(association, DataInputBlobReader.getStructType(this.channelReader)); assert(0==Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).dims(fieldId)) : "This method only used for non dim fields."; assert(Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Short || Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Integer || Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Long); int index = channelReader.readFromEndLastInt(StructRegistry.FIELD_MASK&(int)fieldId); if (index>=0) { channelReader.position(index); //TODO: new method copyPackedLong which moves bytes until end is found output.writeInt(association, channelReader.readPackedInt()); return true; } return false; }
/** * Reads int from specified field in pipe * @param association field association showing where to read * @return <code>true</code> if data exists, else <code>false</code> */ public boolean readInt(Object association, StructuredWriter output) { final long fieldId = Pipe.structRegistry(DataInputBlobReader.getBackingPipe(this.channelReader)).fieldLookupByIdentity(association, DataInputBlobReader.getStructType(this.channelReader)); assert(0==Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).dims(fieldId)) : "This method only used for non dim fields."; assert(Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Short || Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Integer || Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Long); int index = channelReader.readFromEndLastInt(StructRegistry.FIELD_MASK&(int)fieldId); if (index>=0) { channelReader.position(index); //TODO: new method copyPackedLong which moves bytes until end is found output.writeInt(association, channelReader.readPackedInt()); return true; } return false; }
/** * Reads int from specified field in pipe * @param association field association showing where to read * @return <code>true</code> if data exists, else <code>false</code> */ public boolean readInt(Object association, StructuredWriter output) { final long fieldId = Pipe.structRegistry(DataInputBlobReader.getBackingPipe(this.channelReader)).fieldLookupByIdentity(association, DataInputBlobReader.getStructType(this.channelReader)); assert(0==Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).dims(fieldId)) : "This method only used for non dim fields."; assert(Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Short || Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Integer || Pipe.structRegistry(DataInputBlobReader.getBackingPipe(channelReader)).fieldType(fieldId) == StructType.Long); int index = channelReader.readFromEndLastInt(StructRegistry.FIELD_MASK&(int)fieldId); if (index>=0) { channelReader.position(index); //TODO: new method copyPackedLong which moves bytes until end is found output.writeInt(association, channelReader.readPackedInt()); return true; } return false; }