Home | History | Annotate | Download | only in RxLibrary
      1 /*
      2  *
      3  * Copyright 2015 gRPC authors.
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  *
     17  */
     18 
     19 #import "GRXWriter.h"
     20 
     21 @interface GRXWriter (Immediate)
     22 
     23 /**
     24  * Returns a writer that pulls values from the passed NSEnumerator instance and pushes them to
     25  * its writeable. The NSEnumerator is released when it finishes.
     26  */
     27 + (instancetype)writerWithEnumerator:(NSEnumerator *)enumerator;
     28 
     29 /**
     30  * Returns a writer that pushes to its writeable the successive values returned by the passed
     31  * block. When the block first returns nil, it is released.
     32  */
     33 + (instancetype)writerWithValueSupplier:(id (^)(void))block;
     34 
     35 /**
     36  * Returns a writer that iterates over the values of the passed container and pushes them to
     37  * its writeable. The container is released when the iteration is over.
     38  *
     39  * Note that the usual speed gain of NSFastEnumeration over NSEnumerator results from not having to
     40  * call one method per element. Because GRXWriteable instances accept values one by one, that speed
     41  * gain doesn't happen here.
     42  */
     43 + (instancetype)writerWithContainer:(id<NSFastEnumeration>)container;
     44 
     45 /**
     46  * Returns a writer that sends the passed value to its writeable and then finishes (releasing the
     47  * value).
     48  */
     49 + (instancetype)writerWithValue:(id)value;
     50 
     51 /**
     52  * Returns a writer that, as part of its start method, sends the passed error to the writeable
     53  * (then releasing the error).
     54  */
     55 + (instancetype)writerWithError:(NSError *)error;
     56 
     57 /**
     58  * Returns a writer that, as part of its start method, finishes immediately without sending any
     59  * values to its writeable.
     60  */
     61 + (instancetype)emptyWriter;
     62 
     63 @end
     64