| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkStream_DEFINED | 8 #ifndef SkStream_DEFINED |
| 9 #define SkStream_DEFINED | 9 #define SkStream_DEFINED |
| 10 | 10 |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 //TODO: replace with virtual const SkData* getData() | 126 //TODO: replace with virtual const SkData* getData() |
| 127 virtual const void* getMemoryBase() { return NULL; } | 127 virtual const void* getMemoryBase() { return NULL; } |
| 128 | 128 |
| 129 private: | 129 private: |
| 130 typedef SkRefCnt INHERITED; | 130 typedef SkRefCnt INHERITED; |
| 131 }; | 131 }; |
| 132 | 132 |
| 133 /** SkStreamRewindable is a SkStream for which rewind and duplicate are required
. */ | 133 /** SkStreamRewindable is a SkStream for which rewind and duplicate are required
. */ |
| 134 class SK_API SkStreamRewindable : public SkStream { | 134 class SK_API SkStreamRewindable : public SkStream { |
| 135 public: | 135 public: |
| 136 virtual bool rewind() SK_OVERRIDE = 0; | 136 bool rewind() SK_OVERRIDE = 0; |
| 137 virtual SkStreamRewindable* duplicate() const SK_OVERRIDE = 0; | 137 SkStreamRewindable* duplicate() const SK_OVERRIDE = 0; |
| 138 }; | 138 }; |
| 139 | 139 |
| 140 /** SkStreamSeekable is a SkStreamRewindable for which position, seek, move, and
fork are required. */ | 140 /** SkStreamSeekable is a SkStreamRewindable for which position, seek, move, and
fork are required. */ |
| 141 class SK_API SkStreamSeekable : public SkStreamRewindable { | 141 class SK_API SkStreamSeekable : public SkStreamRewindable { |
| 142 public: | 142 public: |
| 143 virtual SkStreamSeekable* duplicate() const SK_OVERRIDE = 0; | 143 SkStreamSeekable* duplicate() const SK_OVERRIDE = 0; |
| 144 | 144 |
| 145 virtual bool hasPosition() const SK_OVERRIDE { return true; } | 145 bool hasPosition() const SK_OVERRIDE { return true; } |
| 146 virtual size_t getPosition() const SK_OVERRIDE = 0; | 146 size_t getPosition() const SK_OVERRIDE = 0; |
| 147 virtual bool seek(size_t position) SK_OVERRIDE = 0; | 147 bool seek(size_t position) SK_OVERRIDE = 0; |
| 148 virtual bool move(long offset) SK_OVERRIDE = 0; | 148 bool move(long offset) SK_OVERRIDE = 0; |
| 149 virtual SkStreamSeekable* fork() const SK_OVERRIDE = 0; | 149 SkStreamSeekable* fork() const SK_OVERRIDE = 0; |
| 150 }; | 150 }; |
| 151 | 151 |
| 152 /** SkStreamAsset is a SkStreamSeekable for which getLength is required. */ | 152 /** SkStreamAsset is a SkStreamSeekable for which getLength is required. */ |
| 153 class SK_API SkStreamAsset : public SkStreamSeekable { | 153 class SK_API SkStreamAsset : public SkStreamSeekable { |
| 154 public: | 154 public: |
| 155 virtual SkStreamAsset* duplicate() const SK_OVERRIDE = 0; | 155 SkStreamAsset* duplicate() const SK_OVERRIDE = 0; |
| 156 virtual SkStreamAsset* fork() const SK_OVERRIDE = 0; | 156 SkStreamAsset* fork() const SK_OVERRIDE = 0; |
| 157 | 157 |
| 158 virtual bool hasLength() const SK_OVERRIDE { return true; } | 158 bool hasLength() const SK_OVERRIDE { return true; } |
| 159 virtual size_t getLength() const SK_OVERRIDE = 0; | 159 size_t getLength() const SK_OVERRIDE = 0; |
| 160 }; | 160 }; |
| 161 | 161 |
| 162 /** SkStreamMemory is a SkStreamAsset for which getMemoryBase is required. */ | 162 /** SkStreamMemory is a SkStreamAsset for which getMemoryBase is required. */ |
| 163 class SK_API SkStreamMemory : public SkStreamAsset { | 163 class SK_API SkStreamMemory : public SkStreamAsset { |
| 164 public: | 164 public: |
| 165 virtual SkStreamMemory* duplicate() const SK_OVERRIDE = 0; | 165 SkStreamMemory* duplicate() const SK_OVERRIDE = 0; |
| 166 virtual SkStreamMemory* fork() const SK_OVERRIDE = 0; | 166 SkStreamMemory* fork() const SK_OVERRIDE = 0; |
| 167 | 167 |
| 168 virtual const void* getMemoryBase() SK_OVERRIDE = 0; | 168 const void* getMemoryBase() SK_OVERRIDE = 0; |
| 169 }; | 169 }; |
| 170 | 170 |
| 171 class SK_API SkWStream : SkNoncopyable { | 171 class SK_API SkWStream : SkNoncopyable { |
| 172 public: | 172 public: |
| 173 SK_DECLARE_INST_COUNT_ROOT(SkWStream) | 173 SK_DECLARE_INST_COUNT_ROOT(SkWStream) |
| 174 | 174 |
| 175 virtual ~SkWStream(); | 175 virtual ~SkWStream(); |
| 176 | 176 |
| 177 /** Called to write bytes to a SkWStream. Returns true on success | 177 /** Called to write bytes to a SkWStream. Returns true on success |
| 178 @param buffer the address of at least size bytes to be written to the st
ream | 178 @param buffer the address of at least size bytes to be written to the st
ream |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 virtual ~SkFILEStream(); | 241 virtual ~SkFILEStream(); |
| 242 | 242 |
| 243 /** Returns true if the current path could be opened. */ | 243 /** Returns true if the current path could be opened. */ |
| 244 bool isValid() const { return fFILE != NULL; } | 244 bool isValid() const { return fFILE != NULL; } |
| 245 | 245 |
| 246 /** Close the current file, and open a new file with the specified path. | 246 /** Close the current file, and open a new file with the specified path. |
| 247 * If path is NULL, just close the current file. | 247 * If path is NULL, just close the current file. |
| 248 */ | 248 */ |
| 249 void setPath(const char path[]); | 249 void setPath(const char path[]); |
| 250 | 250 |
| 251 virtual size_t read(void* buffer, size_t size) SK_OVERRIDE; | 251 size_t read(void* buffer, size_t size) SK_OVERRIDE; |
| 252 virtual bool isAtEnd() const SK_OVERRIDE; | 252 bool isAtEnd() const SK_OVERRIDE; |
| 253 | 253 |
| 254 virtual bool rewind() SK_OVERRIDE; | 254 bool rewind() SK_OVERRIDE; |
| 255 virtual SkStreamAsset* duplicate() const SK_OVERRIDE; | 255 SkStreamAsset* duplicate() const SK_OVERRIDE; |
| 256 | 256 |
| 257 virtual size_t getPosition() const SK_OVERRIDE; | 257 size_t getPosition() const SK_OVERRIDE; |
| 258 virtual bool seek(size_t position) SK_OVERRIDE; | 258 bool seek(size_t position) SK_OVERRIDE; |
| 259 virtual bool move(long offset) SK_OVERRIDE; | 259 bool move(long offset) SK_OVERRIDE; |
| 260 virtual SkStreamAsset* fork() const SK_OVERRIDE; | 260 SkStreamAsset* fork() const SK_OVERRIDE; |
| 261 | 261 |
| 262 virtual size_t getLength() const SK_OVERRIDE; | 262 size_t getLength() const SK_OVERRIDE; |
| 263 | 263 |
| 264 virtual const void* getMemoryBase() SK_OVERRIDE; | 264 const void* getMemoryBase() SK_OVERRIDE; |
| 265 | 265 |
| 266 private: | 266 private: |
| 267 SkFILE* fFILE; | 267 SkFILE* fFILE; |
| 268 SkString fName; | 268 SkString fName; |
| 269 Ownership fOwnership; | 269 Ownership fOwnership; |
| 270 // fData is lazilly initialized when needed. | 270 // fData is lazilly initialized when needed. |
| 271 mutable SkAutoTUnref<SkData> fData; | 271 mutable SkAutoTUnref<SkData> fData; |
| 272 | 272 |
| 273 typedef SkStreamAsset INHERITED; | 273 typedef SkStreamAsset INHERITED; |
| 274 }; | 274 }; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 * Use the specified data as the memory for this stream. | 313 * Use the specified data as the memory for this stream. |
| 314 * The stream will call ref() on the data (assuming it is not NULL). | 314 * The stream will call ref() on the data (assuming it is not NULL). |
| 315 * The function returns the data parameter as a convenience. | 315 * The function returns the data parameter as a convenience. |
| 316 */ | 316 */ |
| 317 SkData* setData(SkData*); | 317 SkData* setData(SkData*); |
| 318 | 318 |
| 319 void skipToAlign4(); | 319 void skipToAlign4(); |
| 320 const void* getAtPos(); | 320 const void* getAtPos(); |
| 321 size_t peek() const { return fOffset; } | 321 size_t peek() const { return fOffset; } |
| 322 | 322 |
| 323 virtual size_t read(void* buffer, size_t size) SK_OVERRIDE; | 323 size_t read(void* buffer, size_t size) SK_OVERRIDE; |
| 324 virtual bool isAtEnd() const SK_OVERRIDE; | 324 bool isAtEnd() const SK_OVERRIDE; |
| 325 | 325 |
| 326 virtual bool rewind() SK_OVERRIDE; | 326 bool rewind() SK_OVERRIDE; |
| 327 virtual SkMemoryStream* duplicate() const SK_OVERRIDE; | 327 SkMemoryStream* duplicate() const SK_OVERRIDE; |
| 328 | 328 |
| 329 virtual size_t getPosition() const SK_OVERRIDE; | 329 size_t getPosition() const SK_OVERRIDE; |
| 330 virtual bool seek(size_t position) SK_OVERRIDE; | 330 bool seek(size_t position) SK_OVERRIDE; |
| 331 virtual bool move(long offset) SK_OVERRIDE; | 331 bool move(long offset) SK_OVERRIDE; |
| 332 virtual SkMemoryStream* fork() const SK_OVERRIDE; | 332 SkMemoryStream* fork() const SK_OVERRIDE; |
| 333 | 333 |
| 334 virtual size_t getLength() const SK_OVERRIDE; | 334 size_t getLength() const SK_OVERRIDE; |
| 335 | 335 |
| 336 virtual const void* getMemoryBase() SK_OVERRIDE; | 336 const void* getMemoryBase() SK_OVERRIDE; |
| 337 | 337 |
| 338 private: | 338 private: |
| 339 SkData* fData; | 339 SkData* fData; |
| 340 size_t fOffset; | 340 size_t fOffset; |
| 341 | 341 |
| 342 typedef SkStreamMemory INHERITED; | 342 typedef SkStreamMemory INHERITED; |
| 343 }; | 343 }; |
| 344 | 344 |
| 345 ////////////////////////////////////////////////////////////////////////////////
///////////// | 345 ////////////////////////////////////////////////////////////////////////////////
///////////// |
| 346 | 346 |
| 347 class SK_API SkFILEWStream : public SkWStream { | 347 class SK_API SkFILEWStream : public SkWStream { |
| 348 public: | 348 public: |
| 349 SK_DECLARE_INST_COUNT(SkFILEWStream) | 349 SK_DECLARE_INST_COUNT(SkFILEWStream) |
| 350 | 350 |
| 351 SkFILEWStream(const char path[]); | 351 SkFILEWStream(const char path[]); |
| 352 virtual ~SkFILEWStream(); | 352 virtual ~SkFILEWStream(); |
| 353 | 353 |
| 354 /** Returns true if the current path could be opened. | 354 /** Returns true if the current path could be opened. |
| 355 */ | 355 */ |
| 356 bool isValid() const { return fFILE != NULL; } | 356 bool isValid() const { return fFILE != NULL; } |
| 357 | 357 |
| 358 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; | 358 bool write(const void* buffer, size_t size) SK_OVERRIDE; |
| 359 virtual void flush() SK_OVERRIDE; | 359 void flush() SK_OVERRIDE; |
| 360 virtual size_t bytesWritten() const SK_OVERRIDE; | 360 size_t bytesWritten() const SK_OVERRIDE; |
| 361 | 361 |
| 362 private: | 362 private: |
| 363 SkFILE* fFILE; | 363 SkFILE* fFILE; |
| 364 | 364 |
| 365 typedef SkWStream INHERITED; | 365 typedef SkWStream INHERITED; |
| 366 }; | 366 }; |
| 367 | 367 |
| 368 class SkMemoryWStream : public SkWStream { | 368 class SkMemoryWStream : public SkWStream { |
| 369 public: | 369 public: |
| 370 SK_DECLARE_INST_COUNT(SkMemoryWStream) | 370 SK_DECLARE_INST_COUNT(SkMemoryWStream) |
| 371 | 371 |
| 372 SkMemoryWStream(void* buffer, size_t size); | 372 SkMemoryWStream(void* buffer, size_t size); |
| 373 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; | 373 bool write(const void* buffer, size_t size) SK_OVERRIDE; |
| 374 virtual size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; } | 374 size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; } |
| 375 | 375 |
| 376 private: | 376 private: |
| 377 char* fBuffer; | 377 char* fBuffer; |
| 378 size_t fMaxLength; | 378 size_t fMaxLength; |
| 379 size_t fBytesWritten; | 379 size_t fBytesWritten; |
| 380 | 380 |
| 381 typedef SkWStream INHERITED; | 381 typedef SkWStream INHERITED; |
| 382 }; | 382 }; |
| 383 | 383 |
| 384 class SK_API SkDynamicMemoryWStream : public SkWStream { | 384 class SK_API SkDynamicMemoryWStream : public SkWStream { |
| 385 public: | 385 public: |
| 386 SK_DECLARE_INST_COUNT(SkDynamicMemoryWStream) | 386 SK_DECLARE_INST_COUNT(SkDynamicMemoryWStream) |
| 387 | 387 |
| 388 SkDynamicMemoryWStream(); | 388 SkDynamicMemoryWStream(); |
| 389 virtual ~SkDynamicMemoryWStream(); | 389 virtual ~SkDynamicMemoryWStream(); |
| 390 | 390 |
| 391 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; | 391 bool write(const void* buffer, size_t size) SK_OVERRIDE; |
| 392 virtual size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; } | 392 size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; } |
| 393 // random access write | 393 // random access write |
| 394 // modifies stream and returns true if offset + size is less than or equal t
o getOffset() | 394 // modifies stream and returns true if offset + size is less than or equal t
o getOffset() |
| 395 bool write(const void* buffer, size_t offset, size_t size); | 395 bool write(const void* buffer, size_t offset, size_t size); |
| 396 bool read(void* buffer, size_t offset, size_t size); | 396 bool read(void* buffer, size_t offset, size_t size); |
| 397 size_t getOffset() const { return fBytesWritten; } | 397 size_t getOffset() const { return fBytesWritten; } |
| 398 | 398 |
| 399 // copy what has been written to the stream into dst | 399 // copy what has been written to the stream into dst |
| 400 void copyTo(void* dst) const; | 400 void copyTo(void* dst) const; |
| 401 | 401 |
| 402 /** | 402 /** |
| (...skipping 24 matching lines...) Expand all Loading... |
| 427 typedef SkWStream INHERITED; | 427 typedef SkWStream INHERITED; |
| 428 }; | 428 }; |
| 429 | 429 |
| 430 | 430 |
| 431 class SK_API SkDebugWStream : public SkWStream { | 431 class SK_API SkDebugWStream : public SkWStream { |
| 432 public: | 432 public: |
| 433 SkDebugWStream() : fBytesWritten(0) {} | 433 SkDebugWStream() : fBytesWritten(0) {} |
| 434 SK_DECLARE_INST_COUNT(SkDebugWStream) | 434 SK_DECLARE_INST_COUNT(SkDebugWStream) |
| 435 | 435 |
| 436 // overrides | 436 // overrides |
| 437 virtual bool write(const void* buffer, size_t size) SK_OVERRIDE; | 437 bool write(const void* buffer, size_t size) SK_OVERRIDE; |
| 438 virtual void newline() SK_OVERRIDE; | 438 void newline() SK_OVERRIDE; |
| 439 virtual size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; } | 439 size_t bytesWritten() const SK_OVERRIDE { return fBytesWritten; } |
| 440 | 440 |
| 441 private: | 441 private: |
| 442 size_t fBytesWritten; | 442 size_t fBytesWritten; |
| 443 typedef SkWStream INHERITED; | 443 typedef SkWStream INHERITED; |
| 444 }; | 444 }; |
| 445 | 445 |
| 446 // for now | 446 // for now |
| 447 typedef SkFILEStream SkURLStream; | 447 typedef SkFILEStream SkURLStream; |
| 448 | 448 |
| 449 #endif | 449 #endif |
| OLD | NEW |