(root)/
gettext-0.22.4/
libtextstyle/
lib/
noop-styled-ostream.oo.h
       1  /* Output stream with no-op styling.
       2     Copyright (C) 2006, 2019-2020 Free Software Foundation, Inc.
       3     Written by Bruno Haible <bruno@clisp.org>, 2019.
       4  
       5     This program is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation; either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _NOOP_STYLED_OSTREAM_H
      19  #define _NOOP_STYLED_OSTREAM_H
      20  
      21  #include <stdbool.h>
      22  
      23  #include "styled-ostream.h"
      24  
      25  
      26  struct noop_styled_ostream : struct styled_ostream
      27  {
      28  methods:
      29    /* Accessors.  */
      30    ostream_t get_destination (noop_styled_ostream_t stream);
      31    bool      is_owning_destination (noop_styled_ostream_t stream);
      32  };
      33  
      34  
      35  #ifdef __cplusplus
      36  extern "C" {
      37  #endif
      38  
      39  
      40  /* Create an output stream that delegates to DESTINATION and that supports
      41     the styling operations as no-ops.
      42     If PASS_OWNERSHIP is true, closing the resulting stream will automatically
      43     close the DESTINATION.
      44     Note that if PASS_OWNERSHIP is false, the resulting stream must be closed
      45     before DESTINATION can be closed.  */
      46  extern noop_styled_ostream_t
      47         noop_styled_ostream_create (ostream_t destination, bool pass_ownership);
      48  
      49  
      50  /* Test whether a given output stream is a noop_styled_ostream.  */
      51  extern bool is_instance_of_noop_styled_ostream (ostream_t stream);
      52  
      53  
      54  #ifdef __cplusplus
      55  }
      56  #endif
      57  
      58  #endif /* _NOOP_STYLED_OSTREAM_H */