Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2010-02-15 17:47:37 +0000
committerEike Stepper2010-02-15 17:47:37 +0000
commiteba268f1496a29082125ca7513d7a84a08c4a8a5 (patch)
tree02205fa9929000569a32e37c510df24e345503b4
parent78b4d7eebff72a48d2bc5119aafab4f7f0b53d2b (diff)
downloadcdo-eba268f1496a29082125ca7513d7a84a08c4a8a5.tar.gz
cdo-eba268f1496a29082125ca7513d7a84a08c4a8a5.tar.xz
cdo-eba268f1496a29082125ca7513d7a84a08c4a8a5.zip
[256936] Support for Offline Mode
https://bugs.eclipse.org/bugs/show_bug.cgi?id=256936
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LockObjectsRequest.java61
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/RefreshSessionRequest.java10
2 files changed, 34 insertions, 37 deletions
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LockObjectsRequest.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LockObjectsRequest.java
index 45c19be6e1..13a24771ac 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LockObjectsRequest.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/LockObjectsRequest.java
@@ -12,8 +12,13 @@ package org.eclipse.emf.cdo.internal.net4j.protocol;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.io.CDODataOutput;
+import org.eclipse.emf.cdo.common.protocol.CDOProtocolConstants;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
+import org.eclipse.net4j.util.concurrent.IRWLockManager;
+
+import java.io.IOException;
import java.util.Map;
/**
@@ -21,44 +26,28 @@ import java.util.Map;
*/
public class LockObjectsRequest extends RefreshSessionRequest
{
+ private int viewID;
+
+ private IRWLockManager.LockType lockType;
+
+ private long timeout;
+
public LockObjectsRequest(CDOClientProtocol protocol, long lastUpdateTime,
- Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions, int initialChunkSize,
- boolean enablePassiveUpdates)
+ Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions, int initialChunkSize, int viewID,
+ IRWLockManager.LockType lockType, long timeout)
{
- super(protocol, lastUpdateTime, viewedRevisions, initialChunkSize, enablePassiveUpdates);
- throw new UnsupportedOperationException();
+ super(protocol, CDOProtocolConstants.SIGNAL_LOCK_OBJECTS, lastUpdateTime, viewedRevisions, initialChunkSize, false);
+ this.viewID = viewID;
+ this.lockType = lockType;
+ this.timeout = timeout;
}
- // private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_PROTOCOL, LockObjectsRequest.class);
- //
- // private CDOView view;
- //
- // private LockType lockType;
- //
- // private long timeout;
- //
- // public LockObjectsRequest(CDOClientProtocol protocol, CDOView view, Map<CDOID, CDOIDAndVersion> idAndVersions,
- // int referenceChunk, long timeout, LockType lockType)
- // {
- // super(protocol, CDOProtocolConstants.SIGNAL_LOCK_OBJECTS, idAndVersions, referenceChunk);
- // this.view = view;
- //
- // this.timeout = timeout;
- // this.lockType = lockType;
- // }
- //
- // @Override
- // protected void requesting(CDODataOutput out) throws IOException
- // {
- // super.requesting(out);
- // out.writeInt(view.getViewID());
- // out.writeCDOLockType(lockType);
- // out.writeLong(timeout);
- //
- // if (TRACER.isEnabled())
- // {
- // TRACER.format("Locking of type {0} requested for view {1} with timeout {2}", //$NON-NLS-1$
- // lockType == LockType.READ ? "read" : "write", view.getViewID(), timeout); //$NON-NLS-1$ //$NON-NLS-2$
- // }
- // }
+ @Override
+ protected void requesting(CDODataOutput out) throws IOException
+ {
+ super.requesting(out);
+ out.writeInt(viewID);
+ out.writeCDOLockType(lockType);
+ out.writeLong(timeout);
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/RefreshSessionRequest.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/RefreshSessionRequest.java
index e303bea4e4..f9d54e5138 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/RefreshSessionRequest.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/protocol/RefreshSessionRequest.java
@@ -44,7 +44,15 @@ public class RefreshSessionRequest extends CDOClientRequest<RefreshSessionResult
Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions, int initialChunkSize,
boolean enablePassiveUpdates)
{
- super(protocol, CDOProtocolConstants.SIGNAL_REFRESH_SESSION);
+ this(protocol, CDOProtocolConstants.SIGNAL_REFRESH_SESSION, lastUpdateTime, viewedRevisions, initialChunkSize,
+ enablePassiveUpdates);
+ }
+
+ protected RefreshSessionRequest(CDOClientProtocol protocol, short signalID, long lastUpdateTime,
+ Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions, int initialChunkSize,
+ boolean enablePassiveUpdates)
+ {
+ super(protocol, signalID);
this.lastUpdateTime = lastUpdateTime;
this.viewedRevisions = viewedRevisions;
this.initialChunkSize = initialChunkSize;

Back to the top