2011-07-28 14:26:00 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2011 Google Inc.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
|
|
* found in the LICENSE file.
|
|
|
|
*/
|
2011-07-17 14:42:08 +00:00
|
|
|
#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();
|
2012-08-23 18:14:13 +00:00
|
|
|
|
2011-07-17 14:42:08 +00:00
|
|
|
virtual void* requestBlock(size_t minRequest, size_t* actual);
|
|
|
|
virtual void notifyWritten(size_t bytes);
|
2012-08-23 18:14:13 +00:00
|
|
|
|
2011-07-17 14:42:08 +00:00
|
|
|
int writeToSocket(SkSocket* sockfd, SkSocket::DataType type);
|
|
|
|
void enablePlayback() { fPlayback = true; }
|
|
|
|
void disablePlayback() { fPlayback = false; }
|
2012-08-23 18:14:13 +00:00
|
|
|
|
2011-07-17 14:42:08 +00:00
|
|
|
private:
|
|
|
|
SkGPipeReader fReader;
|
|
|
|
bool fPlayback;
|
|
|
|
void* fBlock;
|
|
|
|
size_t fBlockSize;
|
|
|
|
size_t fBytesWritten;
|
|
|
|
int fAtomsWritten;
|
|
|
|
size_t fTotalWritten;
|
2012-08-23 18:14:13 +00:00
|
|
|
|
2011-07-17 14:42:08 +00:00
|
|
|
SkGPipeReader::Status fStatus;
|
|
|
|
};
|
2012-08-14 20:27:54 +00:00
|
|
|
#endif
|