blob: 4fbb331248cd3c73dababc8b787eef992dd5d74d [file] [log] [blame]
vsevik@chromium.org3788fea2011-07-19 13:02:19 +00001/*
joepeck@webkit.org1f45df92014-02-06 23:45:53 +00002 * Copyright (C) 2014 Apple Inc. All rights reserved.
vsevik@chromium.org3788fea2011-07-19 13:02:19 +00003 * Copyright (C) 2011 Google Inc. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include "config.h"
joepeck@webkit.org1f45df92014-02-06 23:45:53 +000028#include "IdentifiersFactory.h"
vsevik@chromium.org7eda8252011-07-19 16:38:33 +000029
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000030#if ENABLE(INSPECTOR)
31
32#include <wtf/text/StringBuilder.h>
33
joepeck@webkit.org1f45df92014-02-06 23:45:53 +000034namespace Inspector {
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000035
36namespace {
37static long s_lastUsedIdentifier = 0;
38}
39
joepeck@webkit.org1f45df92014-02-06 23:45:53 +000040long IdentifiersFactory::s_processId = 0;
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000041
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000042String IdentifiersFactory::createIdentifier()
43{
vsevik@chromium.org7eda8252011-07-19 16:38:33 +000044 return addProcessIdPrefixTo(String::number(++s_lastUsedIdentifier));
45}
46
vsevik@chromium.org986d3d02011-08-12 11:44:55 +000047String IdentifiersFactory::requestId(unsigned long identifier)
vsevik@chromium.org7eda8252011-07-19 16:38:33 +000048{
mkwst@chromium.orgd4c34b02012-10-30 16:49:31 +000049 if (identifier)
50 return addProcessIdPrefixTo(String::number(identifier));
51 return String();
vsevik@chromium.org7eda8252011-07-19 16:38:33 +000052}
53
vsevik@chromium.org7eda8252011-07-19 16:38:33 +000054String IdentifiersFactory::addProcessIdPrefixTo(const String& id)
55{
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000056 StringBuilder builder;
paroga@webkit.org4d255972012-09-10 04:19:34 +000057 builder.appendNumber(s_processId);
58 builder.append('.');
vsevik@chromium.org7eda8252011-07-19 16:38:33 +000059 builder.append(id);
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000060 return builder.toString();
61}
62
joepeck@webkit.org1f45df92014-02-06 23:45:53 +000063} // namespace Inspector
vsevik@chromium.org3788fea2011-07-19 13:02:19 +000064
65#endif // ENABLE(INSPECTOR)