X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.management%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fmanagement%2FISessionContext.java;fp=bundles%2Forg.simantics.db.management%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fmanagement%2FISessionContext.java;h=bab16e1c31ca8d7fd1e5f89929d68d19d6c58feb;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.management/src/org/simantics/db/management/ISessionContext.java b/bundles/org.simantics.db.management/src/org/simantics/db/management/ISessionContext.java new file mode 100644 index 000000000..bab16e1c3 --- /dev/null +++ b/bundles/org.simantics.db.management/src/org/simantics/db/management/ISessionContext.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2007, 2011 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.management; + +import java.util.concurrent.TimeoutException; + +import org.simantics.db.Session; +import org.simantics.utils.datastructures.disposable.IDisposable; +import org.simantics.utils.datastructures.hints.IHintContext; + +/** + * A container for a database session. Also hosts a hint context that can be + * used to carry arbitrary values around. A server activation can be attached to + * an ISessionContext for information value only - ISessionContext will never + * dispose or do anything else with it. + * + *

+ * Disposal of an ISessionContext closes the session contained by this context. + * Further use of this context is prohibited. + *

+ * + * @author Tuukka Lehtonen + */ +public interface ISessionContext extends IDisposable, IHintContext { + + void close() throws IllegalStateException, InterruptedException, TimeoutException; + +// /** +// * @return the socket address this session is connected to +// */ +// IServerAddress getAddress(); + + /** + * @return the database session contained by this context + * @throws IllegalStateException if this context has been disposed + */ + Session getSession(); + + /** + * @return the database session contained by this context or + * null if session context has already been disposed. + */ + Session peekSession(); + +}