edu.mit.csail.aeolus.api
Class AeolusBox<T extends java.io.Serializable>

java.lang.Object
  extended by edu.mit.csail.aeolus.api.AeolusShared
      extended by edu.mit.csail.aeolus.api.AeolusBox<T>
Type Parameters:
T -
All Implemented Interfaces:
AeolusSafe

public final class AeolusBox<T extends java.io.Serializable>
extends AeolusShared

This class is used to create share-able objects in Aeolus. These objects will propagate changes between threads in Aeolus. Trying to serialize these objects will cause an exception, leave serialization of these objects to the Aeolus runtime.


Field Summary
 
Fields inherited from class edu.mit.csail.aeolus.api.AeolusShared
sharedLastEid
 
Constructor Summary
AeolusBox(AeolusLabel objSLabel, AeolusLabel objILabel, T o)
          Construct an AeolusBox with the specified labels and a copy of o for the contents.
AeolusBox(T o)
          Construct an AeolusBox with the current thread's labels and a copy of o for the contents.
 
Method Summary
 T get()
          The get method returns a copy of the object in the AeolusBox
 void put(T o)
          The put method puts a copy of the argument object into the AeolusBox
 
Methods inherited from class edu.mit.csail.aeolus.api.AeolusShared
getIntegrityLabel, getSecrecyLabel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AeolusBox

public AeolusBox(AeolusLabel objSLabel,
                 AeolusLabel objILabel,
                 T o)
          throws InfoFlowControlException
Construct an AeolusBox with the specified labels and a copy of o for the contents.

Throws:
InfoFlowControlException - - if thread's labels are more constraining than those provided.

AeolusBox

public AeolusBox(T o)
Construct an AeolusBox with the current thread's labels and a copy of o for the contents.

Method Detail

get

public T get()
                                   throws InfoFlowControlException
The get method returns a copy of the object in the AeolusBox

Throws:
InfoFlowControlException - - if thread's labels don't allow the read

put

public void put(T o)
         throws InfoFlowControlException
The put method puts a copy of the argument object into the AeolusBox

Throws:
InfoFlowControlException - - if thread's labels don't allow the write