[arrayfire] 70/284: FEAT added infoString function to return info as string
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Sun Feb 7 18:59:20 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/experimental
in repository arrayfire.
commit 3c9d69d209c815c441978dfe0a9a404972d069a5
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date: Mon Dec 14 17:12:54 2015 -0500
FEAT added infoString function to return info as string
---
include/af/device.h | 36 +++++++++++++++++++++++++++++++++++-
src/api/c/device.cpp | 13 +++++++++++++
src/api/cpp/device.cpp | 7 +++++++
src/api/unified/device.cpp | 5 +++++
4 files changed, 60 insertions(+), 1 deletion(-)
diff --git a/include/af/device.h b/include/af/device.h
index 03800c3..d3585c6 100644
--- a/include/af/device.h
+++ b/include/af/device.h
@@ -29,6 +29,27 @@ namespace af
*/
/**
+ \defgroup device_func_info_string infoString
+
+ Get af::info() as a string
+
+ @{
+
+ \brief Returns the output of af::info() as a string
+
+ \param[in] verbose flag to return verbose info
+
+ \returns string containing output of af::info()
+
+ \ingroup arrayfire_func
+ \ingroup device_mat
+ */
+ AFAPI const char* infoString(const bool verbose = false);
+ /**
+ @}
+ */
+
+ /**
\defgroup device_func_prop deviceInfo
Get device information
@@ -205,10 +226,23 @@ extern "C" {
*/
AFAPI af_err af_info();
+ /**
+ \ingroup device_func_info
+ */
AFAPI af_err af_init();
/**
- \ingroup device_func_info
+ \brief Gets the output of af_info() as a string
+
+ \param[out] str contains the string
+ \param[in] verbose flag to return verbose info
+
+ \ingroup device_func_info_string
+ */
+ AFAPI af_err af_info_string(char** str, const bool verbose);
+
+ /**
+ \ingroup device_func_prop
*/
AFAPI af_err af_device_info(char* d_name, char* d_platform, char *d_toolkit, char* d_compute);
diff --git a/src/api/c/device.cpp b/src/api/c/device.cpp
index 39ad217..365ccbe 100644
--- a/src/api/c/device.cpp
+++ b/src/api/c/device.cpp
@@ -70,6 +70,19 @@ af_err af_info()
return AF_SUCCESS;
}
+af_err af_info_string(char **str, const bool verbose)
+{
+ std::string infoStr = getInfo();
+ *str = (char*)malloc(sizeof(char) * (infoStr.size() + 1));
+
+ // Need to do a deep copy
+ // str.c_str wont cut it
+ infoStr.copy(*str, infoStr.size());
+ (*str)[infoStr.size()] = '\0';
+
+ return AF_SUCCESS;
+}
+
af_err af_get_version(int *major, int *minor, int *patch)
{
*major = AF_VERSION_MAJOR;
diff --git a/src/api/cpp/device.cpp b/src/api/cpp/device.cpp
index 622809e..3f24417 100644
--- a/src/api/cpp/device.cpp
+++ b/src/api/cpp/device.cpp
@@ -47,6 +47,13 @@ namespace af
AF_THROW(af_info());
}
+ const char* infoString(const bool verbose)
+ {
+ char *str = NULL;
+ AF_THROW(af_info_string(&str, verbose));
+ return (const char *)str;
+ }
+
void deviceprop(char* d_name, char* d_platform, char *d_toolkit, char* d_compute)
{
deviceInfo(d_name, d_platform, d_toolkit, d_compute);
diff --git a/src/api/unified/device.cpp b/src/api/unified/device.cpp
index 4f07788..8f04bf6 100644
--- a/src/api/unified/device.cpp
+++ b/src/api/unified/device.cpp
@@ -45,6 +45,11 @@ af_err af_init()
return CALL_NO_PARAMS();
}
+af_err af_info_string(char **str, const bool verbose)
+{
+ return CALL(str, verbose);
+}
+
af_err af_device_info(char* d_name, char* d_platform, char *d_toolkit, char* d_compute)
{
return CALL(d_name, d_platform, d_toolkit, d_compute);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list