LCOV - code coverage report
Current view: top level - gcore - gdalallvalidmaskband.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 33 34 97.1 %
Date: 2025-01-18 12:42:00 Functions: 6 6 100.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  GDAL Core
       4             :  * Purpose:  Implementation of GDALAllValidMaskBand, a class implementing all
       5             :  *           a default 'all valid' band mask.
       6             :  * Author:   Frank Warmerdam, warmerdam@pobox.com
       7             :  *
       8             :  ******************************************************************************
       9             :  * Copyright (c) 2007, Frank Warmerdam
      10             :  *
      11             :  * SPDX-License-Identifier: MIT
      12             :  ****************************************************************************/
      13             : 
      14             : #include "cpl_port.h"
      15             : #include "gdal_priv.h"
      16             : 
      17             : #include <cstring>
      18             : 
      19             : #include "gdal.h"
      20             : #include "cpl_error.h"
      21             : 
      22             : //! @cond Doxygen_Suppress
      23             : /************************************************************************/
      24             : /*                        GDALAllValidMaskBand()                        */
      25             : /************************************************************************/
      26             : 
      27       92202 : GDALAllValidMaskBand::GDALAllValidMaskBand(GDALRasterBand *poParent)
      28       92202 :     : GDALRasterBand(FALSE)
      29             : {
      30       92202 :     poDS = nullptr;
      31       92202 :     nBand = 0;
      32             : 
      33       92202 :     nRasterXSize = poParent->GetXSize();
      34       92202 :     nRasterYSize = poParent->GetYSize();
      35             : 
      36       92201 :     eDataType = GDT_Byte;
      37       92201 :     poParent->GetBlockSize(&nBlockXSize, &nBlockYSize);
      38       92201 : }
      39             : 
      40             : /************************************************************************/
      41             : /*                       ~GDALAllValidMaskBand()                        */
      42             : /************************************************************************/
      43             : 
      44             : GDALAllValidMaskBand::~GDALAllValidMaskBand() = default;
      45             : 
      46             : /************************************************************************/
      47             : /*                             IReadBlock()                             */
      48             : /************************************************************************/
      49             : 
      50           1 : CPLErr GDALAllValidMaskBand::IReadBlock(int /* nXBlockOff */,
      51             :                                         int /* nYBlockOff */, void *pImage)
      52             : {
      53           1 :     memset(pImage, 255, static_cast<size_t>(nBlockXSize) * nBlockYSize);
      54             : 
      55           1 :     return CE_None;
      56             : }
      57             : 
      58             : /************************************************************************/
      59             : /*                             IRasterIO()                              */
      60             : /************************************************************************/
      61             : 
      62       27921 : CPLErr GDALAllValidMaskBand::IRasterIO(GDALRWFlag eRWFlag, int, int, int, int,
      63             :                                        void *pData, int nBufXSize,
      64             :                                        int nBufYSize, GDALDataType eBufType,
      65             :                                        GSpacing nPixelSpace,
      66             :                                        GSpacing nLineSpace,
      67             :                                        GDALRasterIOExtraArg *)
      68             : {
      69       27921 :     if (eRWFlag != GF_Read)
      70             :     {
      71           0 :         return CE_Failure;
      72             :     }
      73             : 
      74       27921 :     GByte *pabyData = static_cast<GByte *>(pData);
      75       27921 :     GByte byVal = 255;
      76      341802 :     for (int iY = 0; iY < nBufYSize; ++iY)
      77             :     {
      78      313842 :         GDALCopyWords64(&byVal, GDT_Byte, 0, pabyData + iY * nLineSpace,
      79             :                         eBufType, static_cast<int>(nPixelSpace), nBufXSize);
      80             :     }
      81             : 
      82       27960 :     return CE_None;
      83             : }
      84             : 
      85             : /************************************************************************/
      86             : /*                            GetMaskBand()                             */
      87             : /************************************************************************/
      88             : 
      89         135 : GDALRasterBand *GDALAllValidMaskBand::GetMaskBand()
      90             : 
      91             : {
      92         135 :     return this;
      93             : }
      94             : 
      95             : /************************************************************************/
      96             : /*                            GetMaskFlags()                            */
      97             : /************************************************************************/
      98             : 
      99           7 : int GDALAllValidMaskBand::GetMaskFlags()
     100             : 
     101             : {
     102           7 :     return GMF_ALL_VALID;
     103             : }
     104             : 
     105             : /************************************************************************/
     106             : /*                           ComputeStatistics()                        */
     107             : /************************************************************************/
     108             : 
     109           1 : CPLErr GDALAllValidMaskBand::ComputeStatistics(
     110             :     int /* bApproxOK */, double *pdfMin, double *pdfMax, double *pdfMean,
     111             :     double *pdfStdDev, GDALProgressFunc, void * /*pProgressData*/)
     112             : {
     113           1 :     if (pdfMin)
     114           1 :         *pdfMin = 255.0;
     115           1 :     if (pdfMax)
     116           1 :         *pdfMax = 255.0;
     117           1 :     if (pdfMean)
     118           1 :         *pdfMean = 255.0;
     119           1 :     if (pdfStdDev)
     120           1 :         *pdfStdDev = 0.0;
     121           1 :     return CE_None;
     122             : }
     123             : 
     124             : //! @endcond

Generated by: LCOV version 1.14