LCOV - code coverage report
Current view: top level - other-licenses/snappy/src - snappy-c.cc (source / functions) Hit Total Coverage
Test: output.info Lines: 0 24 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // Copyright 2011 Martin Gieseking <martin.gieseking@uos.de>.
       2             : //
       3             : // Redistribution and use in source and binary forms, with or without
       4             : // modification, are permitted provided that the following conditions are
       5             : // met:
       6             : //
       7             : //     * Redistributions of source code must retain the above copyright
       8             : // notice, this list of conditions and the following disclaimer.
       9             : //     * Redistributions in binary form must reproduce the above
      10             : // copyright notice, this list of conditions and the following disclaimer
      11             : // in the documentation and/or other materials provided with the
      12             : // distribution.
      13             : //     * Neither the name of Google Inc. nor the names of its
      14             : // contributors may be used to endorse or promote products derived from
      15             : // this software without specific prior written permission.
      16             : //
      17             : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      18             : // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      19             : // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
      20             : // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
      21             : // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
      22             : // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      23             : // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
      24             : // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      25             : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
      26             : // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
      27             : // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      28             : 
      29             : #include "snappy.h"
      30             : #include "snappy-c.h"
      31             : 
      32             : extern "C" {
      33             : 
      34           0 : snappy_status snappy_compress(const char* input,
      35             :                               size_t input_length,
      36             :                               char* compressed,
      37             :                               size_t *compressed_length) {
      38           0 :   if (*compressed_length < snappy_max_compressed_length(input_length)) {
      39           0 :     return SNAPPY_BUFFER_TOO_SMALL;
      40             :   }
      41           0 :   snappy::RawCompress(input, input_length, compressed, compressed_length);
      42           0 :   return SNAPPY_OK;
      43             : }
      44             : 
      45           0 : snappy_status snappy_uncompress(const char* compressed,
      46             :                                 size_t compressed_length,
      47             :                                 char* uncompressed,
      48             :                                 size_t* uncompressed_length) {
      49             :   size_t real_uncompressed_length;
      50           0 :   if (!snappy::GetUncompressedLength(compressed,
      51             :                                      compressed_length,
      52             :                                      &real_uncompressed_length)) {
      53           0 :     return SNAPPY_INVALID_INPUT;
      54             :   }
      55           0 :   if (*uncompressed_length < real_uncompressed_length) {
      56           0 :     return SNAPPY_BUFFER_TOO_SMALL;
      57             :   }
      58           0 :   if (!snappy::RawUncompress(compressed, compressed_length, uncompressed)) {
      59           0 :     return SNAPPY_INVALID_INPUT;
      60             :   }
      61           0 :   *uncompressed_length = real_uncompressed_length;
      62           0 :   return SNAPPY_OK;
      63             : }
      64             : 
      65           0 : size_t snappy_max_compressed_length(size_t source_length) {
      66           0 :   return snappy::MaxCompressedLength(source_length);
      67             : }
      68             : 
      69           0 : snappy_status snappy_uncompressed_length(const char *compressed,
      70             :                                          size_t compressed_length,
      71             :                                          size_t *result) {
      72           0 :   if (snappy::GetUncompressedLength(compressed,
      73             :                                     compressed_length,
      74             :                                     result)) {
      75           0 :     return SNAPPY_OK;
      76             :   } else {
      77           0 :     return SNAPPY_INVALID_INPUT;
      78             :   }
      79             : }
      80             : 
      81           0 : snappy_status snappy_validate_compressed_buffer(const char *compressed,
      82             :                                                 size_t compressed_length) {
      83           0 :   if (snappy::IsValidCompressedBuffer(compressed, compressed_length)) {
      84           0 :     return SNAPPY_OK;
      85             :   } else {
      86           0 :     return SNAPPY_INVALID_INPUT;
      87             :   }
      88             : }
      89             : 
      90             : }  // extern "C"

Generated by: LCOV version 1.13