X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db%2Fsrc%2Forg%2Fsimantics%2Fdb%2FAsyncRequestProcessor.java;fp=bundles%2Forg.simantics.db%2Fsrc%2Forg%2Fsimantics%2Fdb%2FAsyncRequestProcessor.java;h=e1707d94e259e361f3f6369d0ef30cbe693d7f59;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db/src/org/simantics/db/AsyncRequestProcessor.java b/bundles/org.simantics.db/src/org/simantics/db/AsyncRequestProcessor.java new file mode 100644 index 000000000..e1707d94e --- /dev/null +++ b/bundles/org.simantics.db/src/org/simantics/db/AsyncRequestProcessor.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * 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; + +import org.simantics.db.procedure.AsyncListener; +import org.simantics.db.procedure.AsyncProcedure; +import org.simantics.db.procedure.Listener; +import org.simantics.db.procedure.Procedure; +import org.simantics.db.procedure.SyncListener; +import org.simantics.db.procedure.SyncProcedure; +import org.simantics.db.request.AsyncMultiRead; +import org.simantics.db.request.AsyncRead; +import org.simantics.db.request.MultiRead; +import org.simantics.db.request.Read; +import org.simantics.db.request.ReadInterface; +import org.simantics.db.request.Write; +import org.simantics.db.request.WriteInterface; +import org.simantics.db.request.WriteOnly; + +/** + * + * For initiating requests in asynchronous manner. The possible requests are + * + *

+ * The standard AsyncRequestProcessors are + *

+ * + * Database services (see e.g. {@link Session}) are available from implemented + * {@link ServiceLocator}. For a synchronous counterpart with the same + * functionality as AsyncRequestProcessor see {@link RequestProcessor} + * + * @version 0.7 + * @author Antti Villberg + * @see Read + * @see AsyncRead + * @see MultiRead + * @see AsyncMultiRead + * @see Write + * @see WriteOnly + * @see AsyncReadGraph + * @see Session + * @see MergingGraphRequestProcessor + * @see RequestProcessor + */ +public interface AsyncRequestProcessor extends ServiceLocator, AsyncRequestProcessorSpecific { + + Resource getRootLibrary(); + + /** + * @return the {@link Session} for which this processor is based on. + */ + Session getSession(); + + void async(ReadInterface r, Procedure procedure); + void async(ReadInterface r, AsyncProcedure procedure); + void async(ReadInterface r, SyncProcedure procedure); + void async(ReadInterface r, Listener procedure); + void async(ReadInterface r, AsyncListener procedure); + void async(ReadInterface r, SyncListener procedure); + + void async(WriteInterface r); + void async(WriteInterface r, Procedure procedure); + + Object getModificationCounter(); + +}