OutputStream.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include <ndb_global.h>
  14. #include <OutputStream.hpp>
  15. #include <socket_io.h>
  16. FileOutputStream::FileOutputStream(FILE * file){
  17.   f = file;
  18. }
  19. int
  20. FileOutputStream::print(const char * fmt, ...){
  21.   va_list ap;
  22.   va_start(ap, fmt);
  23.   const int ret = vfprintf(f, fmt, ap);
  24.   va_end(ap);
  25.   return ret;
  26. }
  27. int
  28. FileOutputStream::println(const char * fmt, ...){
  29.   va_list ap;
  30.   va_start(ap, fmt);
  31.   const int ret = vfprintf(f, fmt, ap);
  32.   va_end(ap);
  33.   return ret + fprintf(f, "n");
  34. }
  35. SocketOutputStream::SocketOutputStream(NDB_SOCKET_TYPE socket,
  36.        unsigned timeout){
  37.   m_socket = socket;
  38.   m_timeout = timeout;
  39. }
  40. int
  41. SocketOutputStream::print(const char * fmt, ...){
  42.   va_list ap;
  43.   va_start(ap, fmt);
  44.   const int ret = vprint_socket(m_socket, m_timeout, fmt, ap);
  45.   va_end(ap);
  46.   return ret;
  47. }
  48. int
  49. SocketOutputStream::println(const char * fmt, ...){
  50.   va_list ap;
  51.   va_start(ap, fmt);
  52.   const int ret = vprintln_socket(m_socket, m_timeout, fmt, ap);
  53.   va_end(ap);
  54.   return ret;
  55. }
  56. #ifdef NDB_SOFTOSE
  57. #include <dbgprintf.h>
  58. int
  59. SoftOseOutputStream::print(const char * fmt, ...){
  60.   va_list ap;
  61.   char buf[1000];
  62.   
  63.   va_start(ap, fmt);
  64.   if (fmt != 0)
  65.     BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap);
  66.   else
  67.     buf[0] = 0;
  68.   va_end(ap);
  69.   dbgprintf(buf);
  70. }
  71. int
  72. SoftOseOutputStream::println(const char * fmt, ...){
  73.   va_list ap;
  74.   char buf[1000];
  75.   
  76.   va_start(ap, fmt);
  77.   if (fmt != 0)
  78.     BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap);
  79.   else
  80.     buf[0] = 0;
  81.   va_end(ap);
  82.   
  83.   strcat(buf, "nr");
  84.   dbgprintf(buf);
  85. }
  86. #endif