blob: 777eaf2debeea764aa010b8ff594608a2ff66d6f [file] [log] [blame]
// Copyright 2014 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.
#ifndef CHROME_BROWSER_SERVICES_GCM_PUSH_MESSAGING_APPLICATION_ID_H_
#define CHROME_BROWSER_SERVICES_GCM_PUSH_MESSAGING_APPLICATION_ID_H_
#include <string>
#include "base/basictypes.h"
#include "url/gurl.h"
namespace gcm {
// The prefix used for all push messaging application ids.
extern const char kPushMessagingApplicationIdPrefix[];
// Type used to identify a web app from a Push API perspective.
struct PushMessagingApplicationId {
public:
static PushMessagingApplicationId Parse(const std::string& id);
PushMessagingApplicationId()
: origin(GURL::EmptyGURL()), service_worker_registration_id(-1) {}
PushMessagingApplicationId(const GURL& origin,
int64 service_worker_registration_id)
: origin(origin),
service_worker_registration_id(service_worker_registration_id) {}
bool IsValid();
std::string ToString() const;
const GURL origin;
const int64 service_worker_registration_id;
};
} // namespace gcm
#endif // CHROME_BROWSER_SERVICES_GCM_PUSH_MESSAGING_APPLICATION_ID_H_