blob: 09d7e668587003849bb5579d20453a1ae098b416 [file] [log] [blame]
// Copyright (c) 2012 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 JINGLE_NOTIFIER_LISTENER_NOTIFICATION_DEFINES_H_
#define JINGLE_NOTIFIER_LISTENER_NOTIFICATION_DEFINES_H_
#include <string>
#include <vector>
namespace notifier {
struct Subscription {
Subscription();
~Subscription();
bool Equals(const Subscription& other) const;
// The name of the channel to subscribe to; usually but not always
// a URL.
std::string channel;
// A sender, which could be a domain or a bare JID, from which we
// will accept pushes.
std::string from;
};
typedef std::vector<Subscription> SubscriptionList;
bool SubscriptionListsEqual(const SubscriptionList& subscriptions1,
const SubscriptionList& subscriptions2);
// A structure representing a <recipient/> block within a push message.
struct Recipient {
Recipient();
~Recipient();
bool Equals(const Recipient& other) const;
// The bare jid of the recipient.
std::string to;
// User-specific data for the recipient.
std::string user_specific_data;
};
typedef std::vector<Recipient> RecipientList;
bool RecipientListsEqual(const RecipientList& recipients1,
const RecipientList& recipients2);
struct Notification {
Notification();
Notification(const Notification& other);
~Notification();
// The channel the notification is coming in on.
std::string channel;
// Recipients for this notification (may be empty).
RecipientList recipients;
// The notification data payload.
std::string data;
bool Equals(const Notification& other) const;
std::string ToString() const;
};
} // namespace notifier
#endif // JINGLE_NOTIFIER_LISTENER_NOTIFICATION_DEFINES_H_