| Index: mojo/shell/public/cpp/lib/names.cc
|
| diff --git a/mojo/shell/public/cpp/lib/names.cc b/mojo/shell/public/cpp/lib/names.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e669229d88b5b29df301509d43862bd659ee0887
|
| --- /dev/null
|
| +++ b/mojo/shell/public/cpp/lib/names.cc
|
| @@ -0,0 +1,43 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "mojo/shell/public/cpp/names.h"
|
| +
|
| +#include "base/strings/string_split.h"
|
| +#include "base/strings/string_util.h"
|
| +
|
| +namespace mojo {
|
| +
|
| +bool IsValidName(const std::string& name) {
|
| + std::vector<std::string> parts =
|
| + base::SplitString(name, ":", base::KEEP_WHITESPACE,
|
| + base::SPLIT_WANT_ALL);
|
| + if (parts.size() != 2)
|
| + return false;
|
| +
|
| + if (parts.front().empty())
|
| + return false;
|
| +
|
| + const std::string& path = parts.back();
|
| + return !path.empty() &&
|
| + !base::StartsWith(path, "//", base::CompareCase::INSENSITIVE_ASCII);
|
| +}
|
| +
|
| +std::string GetNameType(const std::string& name) {
|
| + std::vector<std::string> parts =
|
| + base::SplitString(name, ":", base::KEEP_WHITESPACE,
|
| + base::SPLIT_WANT_ALL);
|
| + DCHECK(2 == parts.size());
|
| + return parts.front();
|
| +}
|
| +
|
| +std::string GetNamePath(const std::string& name) {
|
| + std::vector<std::string> parts =
|
| + base::SplitString(name, ":", base::KEEP_WHITESPACE,
|
| + base::SPLIT_WANT_ALL);
|
| + DCHECK(2 == parts.size());
|
| + return parts.back();
|
| +}
|
| +
|
| +} // namespace mojo
|
|
|