diff options
author | Jonathon Jongsma <jjongsma@src.gnome.org> | 2008-02-02 20:56:40 +0000 |
---|---|---|
committer | Jonathon Jongsma <jjongsma@src.gnome.org> | 2008-02-02 20:56:40 +0000 |
commit | 8a27fb5256d454e166ba2ce616c99ad65d8a3ad8 (patch) | |
tree | b2159882cc63a0ab8b190802efb6c21bf2690fac /gio/src/datainputstream.ccg | |
parent | 88553b487c01ff7bb1645793361890f29b6db7d6 (diff) | |
download | glibmm-8a27fb5256d454e166ba2ce616c99ad65d8a3ad8.tar.gz |
add DataInputStream class
* gio/src/Makefile_list_of_hg.am_fragment:
* gio/src/datainputstream.ccg:
* gio/src/datainputstream.hg:
* tools/m4/convert_gio.m4: add DataInputStream class
svn path=/trunk/; revision=561
Diffstat (limited to 'gio/src/datainputstream.ccg')
-rw-r--r-- | gio/src/datainputstream.ccg | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/gio/src/datainputstream.ccg b/gio/src/datainputstream.ccg new file mode 100644 index 00000000..e2481f20 --- /dev/null +++ b/gio/src/datainputstream.ccg @@ -0,0 +1,252 @@ +// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- + +/* Copyright (C) 2007 The gtkmm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include <gio/gio.h> +#include "slot_async.h" + +namespace Gio +{ + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +guchar DataInputStream::read_byte() +#else +guchar DataInputStream::read_byte(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + guchar retvalue = g_data_input_stream_read_byte(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +gint16 DataInputStream::read_int16() +#else +gint16 DataInputStream::read_int16(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + gint16 retvalue = g_data_input_stream_read_int16(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +guint16 DataInputStream::read_uint16() +#else +guint16 DataInputStream::read_uint16(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + guint16 retvalue = g_data_input_stream_read_uint16(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +gint32 DataInputStream::read_int32() +#else +gint32 DataInputStream::read_int32(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + gint32 retvalue = g_data_input_stream_read_int32(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +guint32 DataInputStream::read_uint32() +#else +guint32 DataInputStream::read_uint32(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + guint32 retvalue = g_data_input_stream_read_uint32(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +gint64 DataInputStream::read_int64() +#else +gint64 DataInputStream::read_int64(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + gint64 retvalue = g_data_input_stream_read_int64(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +guint64 DataInputStream::read_uint64() +#else +guint64 DataInputStream::read_uint64(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + guint64 retvalue = g_data_input_stream_read_uint64(gobj(), NULL, &(gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +std::string DataInputStream::read_line(const Glib::RefPtr<Cancellable>& cancellable) +#else +std::string DataInputStream::read_line(const Glib::RefPtr<Cancellable>& cancellable, std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + std::string s = + Glib::convert_return_gchar_ptr_to_stdstring(g_data_input_stream_read_line(gobj(), + NULL, // pass NULL since we can easily determine the length from the returned std::string + cancellable->gobj(), + &gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + return s; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +std::string DataInputStream::read_line() +#else +std::string DataInputStream::read_line(std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + std::string s = + Glib::convert_return_gchar_ptr_to_stdstring(g_data_input_stream_read_line(gobj(), + NULL, // pass NULL since we can easily determine the length from the returned std::string + NULL, + &gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + return s; +} + + +#ifdef GLIBMM_EXCEPTIONS_ENABLED +std::string DataInputStream::read_until(const std::string& stop_chars, const Glib::RefPtr<Cancellable>& cancellable) +#else +std::string DataInputStream::read_until(const std::string& stop_chars, const Glib::RefPtr<Cancellable>& cancellable, std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + std::string s = + Glib::convert_return_gchar_ptr_to_stdstring(g_data_input_stream_read_until(gobj(), + stop_chars.c_str(), + NULL, // pass NULL since we can easily determine the length from the returned std::string + cancellable->gobj(), + &gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + return s; +} + +/** non-cancellable version of read_until() + */ +#ifdef GLIBMM_EXCEPTIONS_ENABLED +std::string DataInputStream::read_until(const std::string& stop_chars) +#else +std::string DataInputStream::read_until(const std::string& stop_chars, std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + std::string s = + Glib::convert_return_gchar_ptr_to_stdstring(g_data_input_stream_read_until(gobj(), + stop_chars.c_str(), + NULL, // pass NULL since we can easily determine the length from the returned std::string + NULL, + &gerror)); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + return s; +} + +} // namespace Gio |