Go2Py_SIM/deploy/dds_bridge/thirdparty/include/dds/ddsrt/filesystem.h

128 lines
2.9 KiB
C

/*
* Copyright(c) 2006 to 2022 ZettaScale Technology and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
* v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
#ifndef DDSRT_FILESYSTEM_H
#define DDSRT_FILESYSTEM_H
#include <stddef.h>
#include "dds/export.h"
#include "dds/config.h"
#include "dds/ddsrt/retcode.h"
#include "dds/ddsrt/time.h"
#if DDSRT_HAVE_FILESYSTEM
#if _WIN32
#include "dds/ddsrt/filesystem/windows.h"
#else
#include "dds/ddsrt/filesystem/posix.h"
#endif
#if defined (__cplusplus)
extern "C" {
#endif
struct ddsrt_stat {
ddsrt_mode_t stat_mode;
size_t stat_size;
dds_time_t stat_mtime;
};
struct ddsrt_dirent {
char d_name[DDSRT_PATH_MAX + 1];
};
/** \brief opendir wrapper
*
* Open the directory conform opendir
*
* Precondition:
* none
*
* Possible results:
* - return DDS_RETCODE_OK if directory 'name' is opened
* - DDS_RETCODE_ERROR if 'name' could not
* be found or is not a directory.
*/
DDS_EXPORT dds_return_t ddsrt_opendir(const char *name, ddsrt_dir_handle_t *dir);
/** \brief closedir wrapper
*
* Close the directory conform closdir
*
* Precondition:
* none
*
* Possible results:
* - return DDS_RETCODE_OK if directory identified by the handle
* is succesfully closed
* - return DDS_RETCODE_ERROR if the handle is invalid.
*/
DDS_EXPORT dds_return_t ddsrt_closedir(ddsrt_dir_handle_t d);
/** \brief readdir wrapper
*
* Read the directory conform readdir.
*
* Precondition:
* none
*
* Possible results:
* - return DDS_RETCODE_OK if next directory is found
* - return DDS_RETCODE_ERROR if no more directories are found.
*/
DDS_EXPORT dds_return_t ddsrt_readdir(ddsrt_dir_handle_t d, struct ddsrt_dirent *direntp);
/** \brief stat wrapper
*
* Gets directory status conform stat.
*
* Precondition:
* none
*
* Possible results:
* - return DDS_RETCODE_OK if stat is successful
* - return DDS_RETCODE_ERROR if stat fails.
*/
DDS_EXPORT dds_return_t ddsrt_stat(const char *path, struct ddsrt_stat *buf);
/** \brief Transforms the given filepath into a platform specific filepath.
*
* This translation function will replace any platform file seperator into
* the fileseperator of the current platform. Doulbe quotes are removed
* as well.
*
* Precondition:
* none
*
* Possible results:
* - returns normalized filepath conform current platform
* - return NULL if out of memory.
*/
DDS_EXPORT char* ddsrt_file_normalize(const char *filepath);
/** \brief Get file seperator
*
* Possible Results:
* - "<file-seperator-string>"
*/
DDS_EXPORT const char* ddsrt_file_sep(void);
#if defined (__cplusplus)
}
#endif
#endif // DDRT_HAVE_FILESYSTEM
#endif // DDSRT_FILESYSTEM_H