summaryrefslogtreecommitdiffstats
path: root/xbmc/interfaces/legacy/Stat.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/interfaces/legacy/Stat.h
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/interfaces/legacy/Stat.h')
-rw-r--r--xbmc/interfaces/legacy/Stat.h195
1 files changed, 195 insertions, 0 deletions
diff --git a/xbmc/interfaces/legacy/Stat.h b/xbmc/interfaces/legacy/Stat.h
new file mode 100644
index 0000000..90a3843
--- /dev/null
+++ b/xbmc/interfaces/legacy/Stat.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#pragma once
+
+#include "AddonClass.h"
+#include "LanguageHook.h"
+#include "filesystem/File.h"
+
+namespace XBMCAddon
+{
+ namespace xbmcvfs
+ {
+ //
+ /// \defgroup python_stat Stat
+ /// \ingroup python_xbmcvfs
+ /// @{
+ /// @brief **Get file or file system status.**
+ ///
+ /// \python_class{ xbmcvfs.Stat(path) }
+ ///
+ /// These class return information about a file. Execute (search) permission
+ /// is required on all of the directories in path that lead to the file.
+ ///
+ /// @param path [string] file or folder
+ ///
+ ///
+ /// ------------------------------------------------------------------------
+ /// @python_v12 New function added
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// st = xbmcvfs.Stat(path)
+ /// modified = st.st_mtime()
+ /// ..
+ /// ~~~~~~~~~~~~~
+ //
+ class Stat : public AddonClass
+ {
+ struct __stat64 st;
+
+ public:
+ Stat(const String& path)
+ {
+ DelayedCallGuard dg;
+ XFILE::CFile::Stat(path, &st);
+ }
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_mode() }
+ /// To get file protection.
+ ///
+ /// @return st_mode
+ ///
+ st_mode();
+#else
+ inline long long st_mode() { return st.st_mode; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_ino() }
+ /// To get inode number.
+ ///
+ /// @return st_ino
+ ///
+ st_ino();
+#else
+ inline long long st_ino() { return st.st_ino; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_dev() }
+ /// To get ID of device containing file.
+ ///
+ /// The st_dev field describes the device on which this file resides.
+ ///
+ /// @return st_dev
+ ///
+ st_dev();
+#else
+ inline long long st_dev() { return st.st_dev; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_nlink() }
+ /// To get number of hard links.
+ ///
+ /// @return st_nlink
+ ///
+ st_nlink();
+#else
+ inline long long st_nlink() { return st.st_nlink; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_uid() }
+ /// To get user ID of owner.
+ ///
+ /// @return st_uid
+ ///
+ st_uid();
+#else
+ inline long long st_uid() { return st.st_uid; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_gid() }
+ /// To get group ID of owner.
+ ///
+ /// @return st_gid
+ ///
+ st_gid();
+#else
+ inline long long st_gid() { return st.st_gid; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_size() }
+ /// To get total size, in bytes.
+ ///
+ /// The st_size field gives the size of the file (if it is a regular file
+ /// or a symbolic link) in bytes. The size of a symbolic link (only on
+ /// Linux and Mac OS X) is the length of the pathname it contains, without
+ /// a terminating null byte.
+ ///
+ /// @return st_size
+ ///
+ st_size();
+#else
+ inline long long st_size() { return st.st_size; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_atime() }
+ /// To get time of last access.
+ ///
+ /// @return st_atime
+ ///
+ st_atime();
+#else
+ inline long long atime() { return st.st_atime; }; //names st_atime/st_mtime/st_ctime are used by sys/stat.h
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_mtime() }
+ /// To get time of last modification.
+ ///
+ /// @return st_mtime
+ ///
+ st_mtime();
+#else
+ inline long long mtime() { return st.st_mtime; }
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_stat
+ /// @brief \python_func{ st_ctime() }
+ /// To get time of last status change.
+ ///
+ /// @return st_ctime
+ ///
+ st_ctime();
+#else
+ inline long long ctime() { return st.st_ctime; }
+#endif
+ };
+ /// @}
+ }
+}
+