• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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