/* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkNetPipeController_DEFINED #define SkNetPipeController_DEFINED #include "SkTypes.h" #include "SkCanvas.h" #include "SkGPipe.h" #include "SkSockets.h" class SkNetPipeController : public SkGPipeController { public: SkNetPipeController(SkCanvas* target); ~SkNetPipeController(); virtual void* requestBlock(size_t minRequest, size_t* actual); virtual void notifyWritten(size_t bytes); int writeToSocket(SkSocket* sockfd, SkSocket::DataType type); void enablePlayback() { fPlayback = true; } void disablePlayback() { fPlayback = false; } private: SkGPipeReader fReader; bool fPlayback; void* fBlock; size_t fBlockSize; size_t fBytesWritten; int fAtomsWritten; size_t fTotalWritten; SkGPipeReader::Status fStatus; }; #endif