blob: 27e863022e6acc00b1acd6e139ff11b8c793ced4 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.sessions.remote.rmi.iiop;
import java.rmi.*;
import org.eclipse.persistence.internal.sessions.remote.*;
/**
* Defines the public methods remote connection can invoke on the remote session controller.
*/
public interface RMIRemoteSessionController extends Remote {
/**
* INTERNAL:
* This method is intended to be used by by sessions that wish to execute a command on a
* remote session
* @param remoteTransporter The Transporter carrying the command to be executed on the remote session
*/
Transporter processCommand(Transporter remoteTransporter) throws RemoteException;
/**
* Begin a transaction on the database.
*/
Transporter beginTransaction() throws RemoteException;
/**
* Begin an early unit of work transaction.
*/
Transporter beginEarlyTransaction() throws RemoteException;
/**
* To commit remote unit of work on the server side.
*/
Transporter commitRootUnitOfWork(Transporter remoteUnitOfWork) throws RemoteException;
/**
* Commit a transaction on the database.
*/
Transporter commitTransaction() throws RemoteException;
/**
* Used for closing cursored streams across RMI.
*/
Transporter cursoredStreamClose(Transporter remoetCursoredStreamID) throws RemoteException;
/**
* Retrieve next page size of objects from the remote cursored stream
*/
Transporter cursoredStreamNextPage(Transporter remoteCursoredStream, int pageSize) throws RemoteException;
/**
* INTERNAL:
* Return the cursored stream size
*/
Transporter cursoredStreamSize(Transporter cursoredStream) throws RemoteException;
/**
* To get remote cursor stub in a transporter
*/
Transporter cursorSelectObjects(Transporter policy) throws RemoteException;
/**
* A remote query after serialization is executed locally.
*/
Transporter executeNamedQuery(Transporter name, Transporter theClass, Transporter arguments) throws RemoteException;
/**
* To execute remote query on the server side.
*/
Transporter executeQuery(Transporter query) throws RemoteException;
/**
* To get the default read-only classes from the server side.
**/
Transporter getDefaultReadOnlyClasses() throws RemoteException;
/**
* To get descriptor from the server side
*/
Transporter getDescriptor(Transporter domainClass) throws RemoteException;
/**
* To get descriptor from the server side
*/
Transporter getDescriptorForAlias(Transporter domainClass) throws RemoteException;
/**
* To get login from the server side
*/
Transporter getLogin() throws RemoteException;
/**
* INTERNAL:
* Get the value returned by remote function call
*/
Transporter getSequenceNumberNamed(Transporter remoteFunctionCall) throws RemoteException;
Transporter initializeIdentityMapsOnServerSession() throws RemoteException;
/**
* To instantiate remote value holder on the server side.
*/
Transporter instantiateRemoteValueHolderOnServer(Transporter remoteValueHolder) throws RemoteException;
/**
* Rollback a transaction on the database.
*/
Transporter rollbackTransaction() throws RemoteException;
/**
* Moves the cursor to the given row number in the result set
*/
Transporter scrollableCursorAbsolute(Transporter remoteScrollableCursorOid, int rows) throws RemoteException;
/**
* Moves the cursor to the end of the result set, just after the last row.
*/
Transporter scrollableCursorAfterLast(Transporter remoteScrollableCursorOid) throws RemoteException;
/**
* Moves the cursor to the front of the result set, just before the first row
*/
Transporter scrollableCursorBeforeFirst(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Used for closing scrollable cursor across RMI.
*/
Transporter scrollableCursorClose(Transporter remoteScrollableCursorOid) throws RemoteException;
/**
* Retrieves the current row index number
*/
Transporter scrollableCursorCurrentIndex(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Moves the cursor to the first row in the result set
*/
Transporter scrollableCursorFirst(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Indicates whether the cursor is after the last row in the result set.
*/
Transporter scrollableCursorIsAfterLast(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Indicates whether the cursor is before the first row in the result set.
*/
Transporter scrollableCursorIsBeforeFirst(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Indicates whether the cursor is on the first row of the result set.
*/
Transporter scrollableCursorIsFirst(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Indicates whether the cursor is on the last row of the result set.
*/
Transporter scrollableCursorIsLast(Transporter remoteScrollableCursor) throws RemoteException;
/**
* Moves the cursor to the last row in the result set
*/
Transporter scrollableCursorLast(Transporter remoteScrollableCursor) throws RemoteException;
/**
* INTERNAL:
* Retrieve next object from the scrollable cursor
*/
Transporter scrollableCursorNextObject(Transporter scrollableCursorOid) throws RemoteException;
/**
* INTERNAL:
* Retrieve previous object from the scrollable cursor
*/
Transporter scrollableCursorPreviousObject(Transporter scrollableCursorOid) throws RemoteException;
/**
* Moves the cursor to the given row number in the result set
*/
Transporter scrollableCursorRelative(Transporter remoteScrollableCursor, int rows) throws RemoteException;
/**
* INTERNAL:
* Return the cursor size
*/
Transporter scrollableCursorSize(Transporter cursoredStream) throws RemoteException;
}