blob: 288af763b0e8780ddb14d1be8c892c1570fc315f [file] [log] [blame]
/*
* Copyright (c) 2010-2012, 2015 Eike Stepper (Berlin, Germany) and others.
* 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:
* Simon McDuff - initial API and implementation
*/
package org.eclipse.emf.cdo.internal.net4j.protocol;
import org.eclipse.emf.cdo.common.id.CDOIDProvider;
import org.eclipse.emf.cdo.common.protocol.CDODataInput;
import org.eclipse.emf.cdo.common.protocol.CDOProtocolConstants;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.net4j.util.om.monitor.OMMonitor;
import org.eclipse.emf.spi.cdo.CDOSessionProtocol.CommitTransactionResult;
import org.eclipse.emf.spi.cdo.InternalCDOXATransaction.InternalCDOXACommitContext;
import java.io.IOException;
/**
* Phase 1 will send all the modifications to the server.
* <p>
* It needs to fill id mappings for objects immediately to be use by other {@link CDOTransaction} involve in that
* commit.
*
* @author Simon McDuff
*/
public class CommitXATransactionPhase1Request extends CommitXATransactionRequest
{
public CommitXATransactionPhase1Request(CDOClientProtocol protocol, InternalCDOXACommitContext xaContext)
{
super(protocol, CDOProtocolConstants.SIGNAL_XA_COMMIT_TRANSACTION_PHASE1, xaContext);
}
@Override
protected CDOIDProvider getIDProvider()
{
return getCommitContext();
}
@Override
protected CommitTransactionResult confirming(CDODataInput in, OMMonitor monitor) throws IOException
{
CommitTransactionResult result = confirmingCheckError(in);
if (result != null)
{
return result;
}
result = confirmingResult(in);
confirmingMappingNewObjects(in, result);
return result;
}
}