LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/sksl - SkSLStringStream.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 25 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 9 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2017 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             : 
       8             : #ifndef SKSL_STRINGSTREAM
       9             : #define SKSL_STRINGSTREAM
      10             : 
      11             : #include "SkSLOutputStream.h"
      12             : 
      13             : #ifdef SKSL_STANDALONE
      14             : 
      15             : namespace SkSL {
      16             : 
      17             : class StringStream : public OutputStream {
      18             : public:
      19             :     void write8(uint8_t b) override {
      20             :         fBuffer += (char) b;
      21             :     }
      22             : 
      23             :     void writeText(const char* s) override {
      24             :         fBuffer += s;
      25             :     }
      26             : 
      27             :     void write(const void* s, size_t size) override {
      28             :         fBuffer.append((const char*) s, size);
      29             :     }
      30             : 
      31             :     const char* data() const {
      32             :         return fBuffer.c_str();
      33             :     }
      34             : 
      35             :     size_t size() const {
      36             :         return fBuffer.size();
      37             :     }
      38             : 
      39             :     void reset() {
      40             :         fBuffer = "";
      41             :     }
      42             : 
      43             : private:
      44             :     String fBuffer;
      45             : };
      46             : 
      47             : #else
      48             : 
      49             : #include "SkData.h"
      50             : #include "SkStream.h"
      51             : 
      52             : namespace SkSL {
      53             : 
      54           0 : class StringStream : public OutputStream {
      55             : public:
      56           0 :     void write8(uint8_t b) override {
      57           0 :         SkASSERT(!fData);
      58           0 :         fStream.write8(b);
      59           0 :     }
      60             : 
      61           0 :     void writeText(const char* s) override {
      62           0 :         SkASSERT(!fData);
      63           0 :         fStream.writeText(s);
      64           0 :     }
      65             : 
      66           0 :     void write(const void* s, size_t size) override {
      67           0 :         SkASSERT(!fData);
      68           0 :         fStream.write(s, size);
      69           0 :     }
      70             : 
      71           0 :     const char* data() const {
      72           0 :         if (!fData) {
      73           0 :             fData = fStream.detachAsData();
      74             :         }
      75           0 :         return (const char*) fData->data();
      76             :     }
      77             : 
      78           0 :     size_t size() const {
      79           0 :         if (!fData) {
      80           0 :             fData = fStream.detachAsData();
      81             :         }
      82           0 :         return fData->size();
      83             :     }
      84             : 
      85           0 :     void reset() {
      86           0 :         fStream.reset();
      87           0 :         fData = nullptr;
      88           0 :     }
      89             : 
      90             : private:
      91             :     mutable SkDynamicMemoryWStream fStream;
      92             :     mutable sk_sp<SkData> fData;
      93             : };
      94             : 
      95             : #endif // SKSL_STANDALONE
      96             : 
      97             : } // namespace
      98             : 
      99             : #endif

Generated by: LCOV version 1.13