summaryrefslogtreecommitdiff
path: root/gio/giomm
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2008-02-01 23:24:08 +0000
committerMurray Cumming <murrayc@src.gnome.org>2008-02-01 23:24:08 +0000
commit84135b93a20e6c9fe652849959d3ff90474c99bb (patch)
tree9b83ee5eb0f2c5e2e102b6bdeef54c27655b3524 /gio/giomm
parentc2cc601439cd40bc8b1f5679e9d9f4ce7fab967b (diff)
downloadglibmm-84135b93a20e6c9fe652849959d3ff90474c99bb.tar.gz
Use convert_return_gchar_ptr_to_ustring() because it releases the gchar*
2008-02-02 Murray Cumming <murrayc@murrayc.com> * gio/giomm/contenttype.cc: * gio/giomm/contenttype.h: Use convert_return_gchar_ptr_to_ustring() because it releases the gchar* and checks for NULL. Removed the ontent_type_guess() that takes a basic_string<guchar> because I doubt anybody would use that. Added one that takes a gchar* and size, and one that takes a std::string (for when the data is a string). svn path=/trunk/; revision=552
Diffstat (limited to 'gio/giomm')
-rw-r--r--gio/giomm/contenttype.cc56
-rw-r--r--gio/giomm/contenttype.h69
2 files changed, 80 insertions, 45 deletions
diff --git a/gio/giomm/contenttype.cc b/gio/giomm/contenttype.cc
index c840acd6..dc268cef 100644
--- a/gio/giomm/contenttype.cc
+++ b/gio/giomm/contenttype.cc
@@ -23,55 +23,77 @@
namespace Gio
{
-bool content_type_equals(const Glib::ustring& type1,
- const Glib::ustring& type2)
+bool content_type_equals(const Glib::ustring& type1, const Glib::ustring& type2)
{
- return g_content_type_equals(type1.c_str(), type2.c_str());
+ return g_content_type_equals(type1.c_str(), type2.c_str());
}
-bool content_type_is_a(const Glib::ustring& type,
- const Glib::ustring& supertype)
+bool content_type_is_a(const Glib::ustring& type, const Glib::ustring& supertype)
{
- return g_content_type_is_a(type.c_str(), supertype.c_str());
+ return g_content_type_is_a(type.c_str(), supertype.c_str());
}
bool content_type_is_unknown(const Glib::ustring& type)
{
- return g_content_type_is_unknown(type.c_str());
+ return g_content_type_is_unknown(type.c_str());
}
Glib::ustring content_type_get_description(const Glib::ustring& type)
{
- return Glib::ustring(g_content_type_get_description(type.c_str()));
+ return Glib::convert_return_gchar_ptr_to_ustring(g_content_type_get_description(type.c_str()));
}
Glib::ustring content_type_get_mime_type(const Glib::ustring& type)
{
- return Glib::ustring(g_content_type_get_mime_type(type.c_str()));
+ return Glib::convert_return_gchar_ptr_to_ustring(g_content_type_get_mime_type(type.c_str()));
}
Glib::RefPtr<Gio::Icon> content_type_get_icon(const Glib::ustring& type)
{
- return Glib::wrap(g_content_type_get_icon(type.c_str()));
+ //TODO: Does g_content_type_get_icon() return a reference?
+ //It currently has no implementation so it's hard to know. murrayc.
+ return Glib::wrap(g_content_type_get_icon(type.c_str()));
}
bool content_type_can_be_executable(const Glib::ustring& type)
{
- return g_content_type_can_be_executable(type.c_str());
+ return g_content_type_can_be_executable(type.c_str());
}
Glib::ustring content_type_guess(const std::string& filename,
- const std::basic_string<guchar>& data,
- bool& result_uncertain)
+ const std::basic_string<guchar>& data, bool& result_uncertain)
{
- return Glib::ustring(g_content_type_guess(filename.c_str(), data.c_str(),
- data.size(), reinterpret_cast<gboolean*>(&result_uncertain)));
+ gboolean c_result_uncertain = FALSE;
+ gchar* cresult = g_content_type_guess(filename.c_str(), data.c_str(),
+ data.size(), &c_result_uncertain);
+ result_uncertain = c_result_uncertain;
+ return Glib::convert_return_gchar_ptr_to_ustring(cresult);
}
-Glib::ListHandle<Glib::ustring> content_types_get_registered(void)
+Glib::ustring content_type_guess(const std::string& filename,
+ const guchar* data, gsize data_size, bool& result_uncertain)
+{
+ gboolean c_result_uncertain = FALSE;
+ gchar* cresult = g_content_type_guess(filename.c_str(), data,
+ data_size, &c_result_uncertain);
+ result_uncertain = c_result_uncertain;
+ return Glib::convert_return_gchar_ptr_to_ustring(cresult);
+}
+
+Glib::ustring content_type_guess(const std::string& filename,
+ const std::string& data, bool& result_uncertain)
+{
+ gboolean c_result_uncertain = FALSE;
+ gchar* cresult = g_content_type_guess(filename.c_str(), (const guchar*)data.c_str(),
+ data.size(), &c_result_uncertain);
+ result_uncertain = c_result_uncertain;
+ return Glib::convert_return_gchar_ptr_to_ustring(cresult);
+}
+
+Glib::ListHandle<Glib::ustring> content_types_get_registered()
{
return Glib::ListHandle<Glib::ustring>(g_content_types_get_registered(),
- Glib::OWNERSHIP_DEEP);
+ Glib::OWNERSHIP_DEEP);
}
} // namespace Gio
diff --git a/gio/giomm/contenttype.h b/gio/giomm/contenttype.h
index ec7a7cba..5f5b56be 100644
--- a/gio/giomm/contenttype.h
+++ b/gio/giomm/contenttype.h
@@ -29,23 +29,23 @@ namespace Gio
/**
* Compares two content types for equality.
-
- * @param type1 a content type string.
- * @param type2 a content type string.
+ *
+ * @param type1 A content type string.
+ * @param type2 A content type string.
*
* @return true if the two strings are identical or equivalent, false otherwise.
- **/
+ */
bool content_type_equals(const Glib::ustring& type1,
const Glib::ustring& type2);
/**
- * Determines if @type is a subset of @supertype.
+ * Determines if @a type is a subset of @a supertype.
+ *
+ * @param type A content type string.
+ * @param supertype A string.
*
- * @param type a content type string.
- * @param supertype a string.
-
* @return true if @type is a kind of @supertype, false otherwise.
- **/
+ */
bool content_type_is_a(const Glib::ustring& type,
const Glib::ustring& supertype);
@@ -54,37 +54,37 @@ bool content_type_is_a(const Glib::ustring& type,
* On unix this is the "application/octet-stream" mimetype,
* while on win32 it is "*".
*
- * @param type a content type string.
+ * @param type A content type string.
*
* @return true if the type is the unknown type.
- **/
+ */
bool content_type_is_unknown(const Glib::ustring& type);
/**
* Gets the human readable description of the content type.
*
- * @param type a content type string.
+ * @param type A content type string.
*
* @return a short description of the content type @type.
- **/
+ */
Glib::ustring content_type_get_description(const Glib::ustring& type);
/**
* Gets the mime-type for the content type. If one is registered
*
- * @param type a content type string.
+ * @param type A content type string.
*
* @return the registered mime-type for the given @type, or NULL if unknown.
- **/
+ */
Glib::ustring content_type_get_mime_type(const Glib::ustring& type);
/**
- * @param type a content type string.
+ * @param type A content type string.
*
* Gets the icon for a content type.
*
* @return Icon corresponding to the content type.
- **/
+ */
Glib::RefPtr<Icon> content_type_get_icon(const Glib::ustring& type);
/**
@@ -94,24 +94,37 @@ Glib::RefPtr<Icon> content_type_get_icon(const Glib::ustring& type);
* @param type a content type string.
*
* @return true if the file type corresponds to a type that can be executable,
- * true otherwise.
- **/
+ * false otherwise.
+ */
bool content_type_can_be_executable(const Glib::ustring& type);
/**
* Guesses the content type based on example data. If the function is uncertain,
- * @result_uncertain will be set to true
+ * @a result_uncertain will be set to true
*
* @param filename a string.
- * @param data a stream of data.
- * @param data_size the size of @data.
- * @param result_uncertain a flag indicating the certainty of the result.
+ * @param data A stream of data.
+ * @param data_size The size of @data.
+ * @param result_uncertain A flag indicating the certainty of the result.
+ * @return A string indicating a guessed content type for the
+ * given data.
+ */
+Glib::ustring content_type_guess(const std::string& filename,
+ const guchar* data, gsize data_size,
+ bool& result_uncertain);
+
+/**
+ * Guesses the content type based on example data. If the function is uncertain,
+ * @a result_uncertain will be set to true
*
- * Returns: a string indicating a guessed content type for the
+ * @param filename a string.
+ * @param data A stream of data.
+ * @param result_uncertain A flag indicating the certainty of the result.
+ * @return A string indicating a guessed content type for the
* given data.
- **/
+ */
Glib::ustring content_type_guess(const std::string& filename,
- const std::basic_string<guchar>& data,
+ const std::string& data,
bool& result_uncertain);
/**
@@ -119,8 +132,8 @@ Glib::ustring content_type_guess(const std::string& filename,
* known to the system.
*
* @return List of the registered content types.
- **/
-Glib::ListHandle<Glib::ustring> content_types_get_registered(void);
+ */
+Glib::ListHandle<Glib::ustring> content_types_get_registered();
} // namespace Gio
#endif // _GIOMM_CONTENTTYPE_H