diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-23 00:16:45 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-23 00:16:45 +0000 |
commit | 3d47a26aed8fd135280d4924d9e9bb36cb624946 (patch) | |
tree | f515a3604302e123d67a04c80079df4da6fc6b35 /chrome/browser/sync/notifier/cache_invalidation_packet_handler.h | |
parent | 51e413c3e9f11186b5026123a4610dd1dc005416 (diff) | |
download | chromium_src-3d47a26aed8fd135280d4924d9e9bb36cb624946.zip chromium_src-3d47a26aed8fd135280d4924d9e9bb36cb624946.tar.gz chromium_src-3d47a26aed8fd135280d4924d9e9bb36cb624946.tar.bz2 |
Implemented initial version of server-issued notification client.
Added NOTIFICATION_SERVER notification method (use
--sync-notification-method=server to turn on).
BUG=34647
TEST=manually
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=50479
Review URL: http://codereview.chromium.org/2827014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50550 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/notifier/cache_invalidation_packet_handler.h')
-rw-r--r-- | chrome/browser/sync/notifier/cache_invalidation_packet_handler.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h new file mode 100644 index 0000000..2ab1b3d --- /dev/null +++ b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h @@ -0,0 +1,58 @@ +// Copyright (c) 2010 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. +// +// Class that handles the details of sending and receiving client +// invalidation packets. + +#ifndef CHROME_BROWSER_SYNC_NOTIFIER_CACHE_INVALIDATION_PACKET_HANDLER_H_ +#define CHROME_BROWSER_SYNC_NOTIFIER_CACHE_INVALIDATION_PACKET_HANDLER_H_ + +#include <string> + +#include "base/basictypes.h" +#include "talk/xmpp/jid.h" + +namespace buzz { +class XmppClient; +} // namespace buzz + +namespace invalidation { +class InvalidationClient; +class NetworkEndpoint; +} // namespace invalidation + +namespace sync_notifier { + +// TODO(akalin): Add a NonThreadSafe member to this class and use it. + +class CacheInvalidationPacketHandler { + public: + // Starts routing packets from |invalidation_client| through + // |xmpp_client|. |invalidation_client| must not already be routing + // packets through something. Does not take ownership of + // |xmpp_client| or |invalidation_client|. + CacheInvalidationPacketHandler( + buzz::XmppClient* xmpp_client, + invalidation::InvalidationClient* invalidation_client); + + // Makes the invalidation client passed into the constructor not + // route packets through the XMPP client passed into the constructor + // anymore. + ~CacheInvalidationPacketHandler(); + + private: + void HandleOutboundPacket( + invalidation::NetworkEndpoint* const& network_endpoint); + + void HandleInboundPacket(const std::string& packet); + + buzz::XmppClient* xmpp_client_; + invalidation::InvalidationClient* invalidation_client_; + + DISALLOW_COPY_AND_ASSIGN(CacheInvalidationPacketHandler); +}; + +} // namespace sync_notifier + +#endif // CHROME_BROWSER_SYNC_NOTIFIER_CACHE_INVALIDATION_PACKET_HANDLER_H_ |