Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /dbus /string_util.cc
blob: 4c3024b99be3eed666a54d93a3cb87a759971c9c [file] [log] [blame] [edit]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include"dbus/string_util.h"
#include<stddef.h>
#include"base/strings/string_util.h"
namespace dbus{
// This implementation is based upon D-Bus Specification Version 0.19.
boolIsValidObjectPath(const std::string& value){
// A valid object path begins with '/'.
if(!base::StartsWith(value,"/", base::CompareCase::SENSITIVE))
returnfalse;
// Elements are pieces delimited by '/'. For instance, "org", "chromium",
// "Foo" are elements of "/org/chromium/Foo".
int element_length=0;
for(size_t i=1; i< value.size();++i){
constchar c= value[i];
if(c=='/'){
// No element may be the empty string.
if(element_length==0)
returnfalse;
element_length=0;
}else{
// Each element must only contain "[A-Z][a-z][0-9]_".
constbool is_valid_character=
('A'<= c&& c<='Z')||('a'<= c&& c<='z')||
('0'<= c&& c<='9')|| c=='_';
if(!is_valid_character)
returnfalse;
element_length++;
}
}
// A trailing '/' character is not allowed unless the path is the root path.
if(value.size()>1&&
base::EndsWith(value,"/", base::CompareCase::SENSITIVE))
returnfalse;
returntrue;
}
}// namespace dbus

[8]ページ先頭

©2009-2025 Movatter.jp