|  | @@ -33,7 +33,10 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #import "ProtoRPC.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#import <ProtocolBuffers/ProtocolBuffers.h>
 | 
	
		
			
				|  |  |  #import <RxLibrary/GRXWriteable.h>
 | 
	
		
			
				|  |  | +#import <RxLibrary/GRXWriter.h>
 | 
	
		
			
				|  |  | +#import <RxLibrary/GRXWriter+Transformations.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @implementation ProtoRPC {
 | 
	
		
			
				|  |  |    id<GRXWriteable> _responseWriteable;
 | 
	
	
		
			
				|  | @@ -60,7 +63,13 @@
 | 
	
		
			
				|  |  |      [NSException raise:NSInvalidArgumentException
 | 
	
		
			
				|  |  |                  format:@"A protobuf class to parse the responses must be provided."];
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  if ((self = [super initWithHost:host method:method requestsWriter:requestsWriter])) {
 | 
	
		
			
				|  |  | +  // A writer that serializes the proto messages to send.
 | 
	
		
			
				|  |  | +  id<GRXWriter> bytesWriter =
 | 
	
		
			
				|  |  | +      [[[GRXWriter alloc] initWithWriter:requestsWriter] map:^id(PBGeneratedMessage *proto) {
 | 
	
		
			
				|  |  | +        return [proto data];
 | 
	
		
			
				|  |  | +      }];
 | 
	
		
			
				|  |  | +  if ((self = [super initWithHost:host method:method requestsWriter:bytesWriter])) {
 | 
	
		
			
				|  |  | +    // A writeable that parses the proto messages received.
 | 
	
		
			
				|  |  |      _responseWriteable = [[GRXWriteable alloc] initWithValueHandler:^(NSData *value) {
 | 
	
		
			
				|  |  |        [responsesWriteable didReceiveValue:[responseClass parseFromData:value]];
 | 
	
		
			
				|  |  |      } completionHandler:^(NSError *errorOrNil) {
 | 
	
	
		
			
				|  | @@ -76,6 +85,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - (void)startWithWriteable:(id<GRXWriteable>)writeable {
 | 
	
		
			
				|  |  |    [super startWithWriteable:writeable];
 | 
	
		
			
				|  |  | +  // Break retain cycles.
 | 
	
		
			
				|  |  |    _responseWriteable = nil;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  @end
 |