Line data Source code
1 : /*
2 : *
3 : * Copyright (c) 2022 Project CHIP Authors
4 : *
5 : * Licensed under the Apache License, Version 2.0 (the "License");
6 : * you may not use this file except in compliance with the License.
7 : * You may obtain a copy of the License at
8 : *
9 : * http://www.apache.org/licenses/LICENSE-2.0
10 : *
11 : * Unless required by applicable law or agreed to in writing, software
12 : * distributed under the License is distributed on an "AS IS" BASIS,
13 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 : * See the License for the specific language governing permissions and
15 : * limitations under the License.
16 : */
17 : #include <lib/dnssd/minimal_mdns/core/QNameString.h>
18 :
19 : namespace mdns {
20 : namespace Minimal {
21 :
22 306 : QNameString::QNameString(const mdns::Minimal::FullQName & name)
23 : {
24 1177 : for (unsigned i = 0; i < name.nameCount; i++)
25 : {
26 871 : if (i != 0)
27 : {
28 565 : mBuffer.Add(".");
29 : }
30 871 : mBuffer.Add(name.names[i]);
31 : }
32 306 : }
33 :
34 0 : QNameString::QNameString(mdns::Minimal::SerializedQNameIterator name)
35 : {
36 0 : bool first = true;
37 0 : while (name.Next())
38 : {
39 0 : if (first)
40 : {
41 0 : first = false;
42 : }
43 : else
44 : {
45 0 : mBuffer.Add(".");
46 : }
47 0 : mBuffer.Add(name.Value());
48 : }
49 0 : if (!name.IsValid())
50 : {
51 0 : mBuffer.Add("(!INVALID!)");
52 : }
53 0 : }
54 :
55 : } // namespace Minimal
56 : } // namespace mdns
|