1 /* 2 * Copyright 2011 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 #ifndef SkNetPipeController_DEFINED 8 #define SkNetPipeController_DEFINED 9 #include "SkTypes.h" 10 #include "SkCanvas.h" 11 #include "SkGPipe.h" 12 #include "SkSockets.h" 13 class SkNetPipeController : public SkGPipeController { 14 public: 15 SkNetPipeController(SkCanvas* target); 16 ~SkNetPipeController(); 17 18 virtual void* requestBlock(size_t minRequest, size_t* actual); 19 virtual void notifyWritten(size_t bytes); 20 21 int writeToSocket(SkSocket* sockfd, SkSocket::DataType type); enablePlayback()22 void enablePlayback() { fPlayback = true; } disablePlayback()23 void disablePlayback() { fPlayback = false; } 24 25 private: 26 SkGPipeReader fReader; 27 bool fPlayback; 28 void* fBlock; 29 size_t fBlockSize; 30 size_t fBytesWritten; 31 int fAtomsWritten; 32 size_t fTotalWritten; 33 34 SkGPipeReader::Status fStatus; 35 }; 36 #endif 37