diff options
Diffstat (limited to 'src/inode2filename/inode.cc')
-rw-r--r-- | src/inode2filename/inode.cc | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/src/inode2filename/inode.cc b/src/inode2filename/inode.cc deleted file mode 100644 index f0e956b..0000000 --- a/src/inode2filename/inode.cc +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (C) 2018 The Android Open Source Project -// -// 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. - -#include "inode2filename/inode.h" - -#include <android-base/logging.h> -#include <android-base/parseint.h> -#include <android-base/strings.h> - -#include <string> -#include <vector> - -#include <sys/sysmacros.h> -#include <sys/types.h> - -using android::base::ParseUint; - -namespace iorap::inode2filename { - -// TODO: refactor to return expected<Inode, string> -bool Inode::Parse(const std::string& str, Inode* out, std::string* error_msg) { - DCHECK(out != nullptr); - DCHECK(error_msg != nullptr); - - // Major:minor:inode OR dev_t@inode - std::vector<std::string> lst_pair = android::base::Split(str, "@"); - if (lst_pair.size() == 2) { - size_t dev_whole = 0; - if (!ParseUint(lst_pair[0], &dev_whole)) { - *error_msg = "Failed to parse the whole device id as uint."; - return false; - } - - dev_t dev_w = static_cast<dev_t>(dev_whole); - out->device_major = major(dev_w); - out->device_minor = minor(dev_w); - - if (!ParseUint(lst_pair[1], &out->inode)) { - *error_msg = "Failed to parse inode as uint."; - return false; - } - - return true; - } - - std::vector<std::string> lst = android::base::Split(str, ":"); - - if (lst.size() != 3) { - *error_msg = "Too few : separated items"; - return false; - } - - if (!ParseUint(lst[0], &out->device_major)) { - *error_msg = "Failed to parse 0th element as a uint"; - return false; - } - - if (!ParseUint(lst[1], &out->device_minor)) { - *error_msg = "Failed to parse 1st element as a uint"; - return false; - } - - if (!ParseUint(lst[2], &out->inode)) { - *error_msg = "Failed to parse 2nd element as a uint"; - return false; - } - - return true; -} - -} // namespace iorap::inode2filename - -// Ensure our pollution-free aliases match the typedefs in the system headers. -static_assert(std::is_same_v<iorap::inode2filename::dev_t, dev_t>); -static_assert(std::is_same_v<iorap::inode2filename::ino_t, ino_t>); - -// TODO: consider some tests for major, minor, etc. |