src/net/java/otr4j/OtrEngine.java
changeset 906 0ff0059f2ec3
child 911 ca323cff3ac9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/net/java/otr4j/OtrEngine.java	Sun Dec 05 18:43:51 2010 +0100
@@ -0,0 +1,79 @@
+package net.java.otr4j;
+
+import java.security.PublicKey;
+
+import net.java.otr4j.session.SessionID;
+import net.java.otr4j.session.SessionStatus;
+
+/**
+ * 
+ * @author George Politis
+ * 
+ */
+public interface OtrEngine {
+
+	/**
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 * @param content
+	 *            The message content to be transformed.
+	 * @return The transformed message content.
+	 */
+	public abstract String transformReceiving(SessionID sessionID,
+			String content);
+
+	/**
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 * @param content
+	 *            The message content to be transformed.
+	 * @return The transformed message content.
+	 */
+	public abstract String transformSending(SessionID sessionID, String content);
+
+	/**
+	 * Starts an Off-the-Record session, if there is no active one.
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 */
+	public abstract void startSession(SessionID sessionID);
+
+	/**
+	 * Ends the Off-the-Record session, if exists.
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 */
+	public abstract void endSession(SessionID sessionID);
+
+	/**
+	 * Stops/Starts the Off-the-Record session.
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 */
+	public abstract void refreshSession(SessionID sessionID);
+
+	/**
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 * @return The status of an Off-the-Record session.
+	 */
+	public abstract SessionStatus getSessionStatus(SessionID sessionID);
+
+	/**
+	 * 
+	 * @param sessionID
+	 *            The session identifier.
+	 * @return The remote public key.
+	 */
+	public abstract PublicKey getRemotePublicKey(SessionID sessionID);
+
+	public abstract void addOtrEngineListener(OtrEngineListener l);
+
+	public abstract void removeOtrEngineListener(OtrEngineListener l);
+}