Home | History | Annotate | Download | only in system
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 package org.chromium.mojo.system;
      6 
      7 import org.chromium.mojo.system.DataPipe.ConsumerHandle;
      8 import org.chromium.mojo.system.DataPipe.ProducerHandle;
      9 
     10 /**
     11  * A mojo handle of unknown type. This handle can be typed by using one of its methods, which will
     12  * return a handle of the requested type and invalidate this object. No validation is made when the
     13  * conversion operation is called.
     14  */
     15 public interface UntypedHandle extends Handle {
     16 
     17     /**
     18      * @see org.chromium.mojo.system.Handle#pass()
     19      */
     20     @Override
     21     public UntypedHandle pass();
     22 
     23     /**
     24      * Returns the underlying handle, as a {@link MessagePipeHandle}, invalidating this
     25      * representation.
     26      */
     27     public MessagePipeHandle toMessagePipeHandle();
     28 
     29     /**
     30      * Returns the underlying handle, as a {@link ConsumerHandle}, invalidating this representation.
     31      */
     32     public ConsumerHandle toDataPipeConsumerHandle();
     33 
     34     /**
     35      * Returns the underlying handle, as a {@link ProducerHandle}, invalidating this representation.
     36      */
     37     public ProducerHandle toDataPipeProducerHandle();
     38 
     39     /**
     40      * Returns the underlying handle, as a {@link SharedBufferHandle}, invalidating this
     41      * representation.
     42      */
     43     public SharedBufferHandle toSharedBufferHandle();
     44 
     45 }
     46