Skip to content

Commit

Permalink
iox-eclipse-iceoryx#1036 Add C++17 filesystem perms feature
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Eltzschig <me@elchris.org>
  • Loading branch information
elfenpiff committed Jan 26, 2022
1 parent 36f3c2c commit 5c4b52c
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions iceoryx_hoofs/include/iceoryx_hoofs/cxx/filesystem.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// Copyright (c) 2022 by Apex.AI Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0
#ifndef IOX_HOOFS_CXX_FILESYSTEM_HPP
#define IOX_HOOFS_CXX_FILESYSTEM_HPP

namespace iox
{
namespace cxx
{
/// @brief this enum class implements the filesystem perms feature of C++17. The
/// API is identical to the C++17 one so that the class can be removed
/// as soon as iceoryx switches to C++17.
enum class perms
{
/// @brief Deny everything
none = 0,

/// @brief owner has read permission
owner_read = 0400,
/// @brief owner has write permission
owner_write = 0200,
/// @brief owner has execution permission
owner_exec = 0100,
/// @brief owner has all permissions
owner_all = 0700,

/// @brief group has read permission
group_read = 040,
/// @brief group has write permission
group_write = 020,
/// @brief group has execution permission
group_exec = 010,
/// @brief group has all permissions
group_all = 070,

/// @brief others have read permission
others_read = 04,
/// @brief others have write permission
others_write = 02,
/// @brief others have execution permission
others_exec = 01,
/// @brief others have all permissions
others_all = 07,

/// @brief all permissions for everyone
all = 0777,

/// @brief set uid bit
set_uid = 04000,
/// @brief set gid bit
set_gid = 02000,
/// @brief set sticky bit
sticky_bit = 01000,

/// @brief all permissions for everyone as well as uid, gid and sticky bit
mask = 07777
};
} // namespace cxx
} // namespace iox

#endif

0 comments on commit 5c4b52c

Please sign in to comment.