/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.communication.rpc.internal;
import de.rcenvironment.core.communication.common.CommunicationException;
import de.rcenvironment.core.communication.legacy.internal.NetworkContact;
import de.rcenvironment.core.communication.rpc.ServiceCallRequest;
import de.rcenvironment.core.communication.rpc.ServiceCallResult;
import de.rcenvironment.core.utils.common.rpc.RemoteOperationException;
/**
* This interface describes the methods that the different service call sender has to implement.
*
* @author Thijs Metsch
* @author Heinrich Wendel
* @author Doreen Seider
*/
// replaced by RemoteServiceCallService
@Deprecated
public interface ServiceCallSender {
/**
* This methods initializes the connection parameters required for the connection. It must be called before send is called.
*
* @param contact Information that describes how to contact the communication partner.
* @throws CommunicationException Thrown if the communication failed.
*/
void initialize(NetworkContact contact) throws CommunicationException;
/**
* This method establishes a connection to another RCE platform and calls the method described in the {@link ServiceCallRequest}. It
* returns the result as {@link ServiceCallResult}.
*
* TODO specify if all implementations are expected to be thread-safe - misc_ro
*
* @param serviceCallRequest The {@link ServiceCallRequest} object describing the remote service method call.
* @return The result of the remote service method call call as {@link ServiceCallResult}.
* @throws RemoteOperationException Thrown if the communication failed.
*/
ServiceCallResult send(ServiceCallRequest serviceCallRequest) throws RemoteOperationException;
}