Skip to content

File printer.cpp

File List > base > printer.cpp

Go to the documentation of this file

/*
 * Copyright 2008 Search Solution Corporation
 * Copyright 2016 CUBRID Corporation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */

/*
 * printer.cpp - printing classes
 */

#include "printer.hpp"
// XXX: SHOULD BE THE LAST INCLUDE HEADER
#include "memory_wrapper.hpp"

void print_output::operator+= (const char ch)
{
  m_sb.operator+= (ch);
  (void) flush ();
}

file_print_output::file_print_output (FILE *fp) :
  output_file (fp)
{
}

file_print_output &file_print_output::std_output (void)
{
  static file_print_output s_std_output (stdout);
  return s_std_output;
}

int file_print_output::flush ()
{
  int res = (int) fwrite (m_sb.get_buffer (), 1, m_sb.len (), output_file);
  m_sb.clear ();
  return res;
}


string_print_output::string_print_output ()
{
}

int string_print_output::flush ()
{
  return (int) m_sb.len ();
}