X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.server%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fserver%2Fprotocol%2FGetResourceSegmentFunction.java;fp=bundles%2Forg.simantics.db.server%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fserver%2Fprotocol%2FGetResourceSegmentFunction.java;h=c0d4ef2ea59df53405650193972920f443f26270;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.server/src/org/simantics/db/server/protocol/GetResourceSegmentFunction.java b/bundles/org.simantics.db.server/src/org/simantics/db/server/protocol/GetResourceSegmentFunction.java new file mode 100644 index 000000000..c0d4ef2ea --- /dev/null +++ b/bundles/org.simantics.db.server/src/org/simantics/db/server/protocol/GetResourceSegmentFunction.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.db.server.protocol; + +import java.nio.ByteOrder; + +public class GetResourceSegmentFunction extends AbstractFunction { + public byte[] clusterUID = null; + public int resourceIndex = 0; + public long segmentOffset = 0; + public short segmentSize = 0; + public boolean isExternalResource = false; + public long valueSize = 0; + public byte[] segment = null; + public GetResourceSegmentFunction() { + super(MessageNumber.GetResourceSegmentRequest, MessageNumber.GetResourceSegmentResponse); + } + public GetResourceSegmentFunction(byte[] clusterUID, int resourceIndex, long segmentOffset, short segmentSize) { + super(MessageNumber.GetResourceSegmentRequest, MessageNumber.GetResourceSegmentResponse); + this.clusterUID = clusterUID; + this.resourceIndex = resourceIndex; + this.segmentOffset = segmentOffset; + this.segmentSize = segmentSize; + } + @Override + public DataBuffer serialize(ByteOrder byteOrder) { + buffer.clear(); + buffer.order(byteOrder); + buffer.put(clusterUID); + buffer.put(resourceIndex); + buffer.put(segmentOffset); + buffer.put(segmentSize); + buffer.mark(); + return buffer; + } + @Override + public void deserialize(int receivedNumber_, DataBuffer dataBuffer) { + receivedNumber = receivedNumber_; + if (notRightDataForUs()) + return; + isExternalResource = dataBuffer.get(isExternalResource); + valueSize = dataBuffer.get(valueSize); + segment = dataBuffer.get(segment); + gotResponse(); + } +}