// Copyright 2019 The MediaPipe Authors. // // 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 "mediapipe/framework/deps/file_path.h" #include "absl/strings/str_cat.h" namespace mediapipe { namespace file { // 40% of the time in JoinPath() is from calls with 2 arguments, so we // specialize that case. std::string JoinPath(absl::string_view path1, absl::string_view path2) { … } namespace internal { // Given a collection of file paths, append them all together, // ensuring that the proper path separators are inserted between them. std::string JoinPathImpl(bool honor_abs, std::initializer_list<absl::string_view> paths) { … } // Return the parts of the basename of path, split on the final ".". // If there is no "." in the basename or "." is the final character in the // basename, the second value will be empty. std::pair<absl::string_view, absl::string_view> SplitBasename( absl::string_view path) { … } } // namespace internal absl::string_view Dirname(absl::string_view path) { … } absl::string_view Basename(absl::string_view path) { … } std::pair<absl::string_view, absl::string_view> SplitPath( absl::string_view path) { … } absl::string_view Extension(absl::string_view path) { … } } // namespace file } // namespace mediapipe