1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef JINGLE_NOTIFIER_LISTENER_NOTIFICATION_DEFINES_H_ 6#define JINGLE_NOTIFIER_LISTENER_NOTIFICATION_DEFINES_H_ 7 8#include <string> 9#include <vector> 10 11namespace notifier { 12 13struct Subscription { 14 Subscription(); 15 ~Subscription(); 16 bool Equals(const Subscription& other) const; 17 18 // The name of the channel to subscribe to; usually but not always 19 // a URL. 20 std::string channel; 21 // A sender, which could be a domain or a bare JID, from which we 22 // will accept pushes. 23 std::string from; 24}; 25 26typedef std::vector<Subscription> SubscriptionList; 27 28bool SubscriptionListsEqual(const SubscriptionList& subscriptions1, 29 const SubscriptionList& subscriptions2); 30 31// A structure representing a <recipient/> block within a push message. 32struct Recipient { 33 Recipient(); 34 ~Recipient(); 35 bool Equals(const Recipient& other) const; 36 37 // The bare jid of the recipient. 38 std::string to; 39 // User-specific data for the recipient. 40 std::string user_specific_data; 41}; 42 43typedef std::vector<Recipient> RecipientList; 44 45bool RecipientListsEqual(const RecipientList& recipients1, 46 const RecipientList& recipients2); 47 48struct Notification { 49 Notification(); 50 ~Notification(); 51 52 // The channel the notification is coming in on. 53 std::string channel; 54 // Recipients for this notification (may be empty). 55 RecipientList recipients; 56 // The notification data payload. 57 std::string data; 58 59 bool Equals(const Notification& other) const; 60 std::string ToString() const; 61}; 62 63} // namespace notifier 64 65#endif // JINGLE_NOTIFIER_LISTENER_NOTIFICATION_DEFINES_H_ 66