| Index: third_party/cacheinvalidation/src/google/cacheinvalidation/impl/invalidation-client-impl.cc
|
| diff --git a/third_party/cacheinvalidation/src/google/cacheinvalidation/impl/invalidation-client-impl.cc b/third_party/cacheinvalidation/src/google/cacheinvalidation/impl/invalidation-client-impl.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..947ffe4d57ddd236fcc29174f17b3cba91efafdf
|
| --- /dev/null
|
| +++ b/third_party/cacheinvalidation/src/google/cacheinvalidation/impl/invalidation-client-impl.cc
|
| @@ -0,0 +1,79 @@
|
| +// Copyright 2012 Google Inc.
|
| +//
|
| +// Licensed under the Apache License, Version 2.0 (the "License");
|
| +// you may not use this file except in compliance with the License.
|
| +// You may obtain a copy of the License at
|
| +//
|
| +// http://www.apache.org/licenses/LICENSE-2.0
|
| +//
|
| +// Unless required by applicable law or agreed to in writing, software
|
| +// distributed under the License is distributed on an "AS IS" BASIS,
|
| +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| +// See the License for the specific language governing permissions and
|
| +// limitations under the License.
|
| +
|
| +// Implementation of the Invalidation Client Library (Ticl).
|
| +
|
| +#include "google/cacheinvalidation/impl/invalidation-client-impl.h"
|
| +
|
| +namespace invalidation {
|
| +
|
| +InvalidationClientImpl::InvalidationClientImpl(
|
| + SystemResources* resources, Random* random, int client_type,
|
| + const string& client_name, const ClientConfigP& config,
|
| + const string& application_name, InvalidationListener* listener)
|
| + : InvalidationClientCore(resources, random, client_type, client_name,
|
| + config, application_name),
|
| + listener_(new CheckingInvalidationListener(
|
| + listener, GetStatistics(), resources->internal_scheduler(),
|
| + resources->listener_scheduler(), resources->logger())) {
|
| +}
|
| +
|
| +void InvalidationClientImpl::Start() {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoStart));
|
| +}
|
| +
|
| +void InvalidationClientImpl::Stop() {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoStop));
|
| +}
|
| +
|
| +void InvalidationClientImpl::Register(const ObjectId& object_id) {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoRegister,
|
| + object_id));
|
| +}
|
| +
|
| +void InvalidationClientImpl::Register(const vector<ObjectId>& object_ids) {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoBulkRegister,
|
| + object_ids));
|
| +}
|
| +
|
| +void InvalidationClientImpl::Unregister(const ObjectId& object_id) {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoUnregister,
|
| + object_id));
|
| +}
|
| +
|
| +void InvalidationClientImpl::Unregister(const vector<ObjectId>& object_ids) {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoBulkUnregister,
|
| + object_ids));
|
| +}
|
| +
|
| +void InvalidationClientImpl::Acknowledge(const AckHandle& acknowledge_handle) {
|
| + GetInternalScheduler()->Schedule(
|
| + Scheduler::NoDelay(),
|
| + NewPermanentCallback(this, &InvalidationClientImpl::DoAcknowledge,
|
| + acknowledge_handle));
|
| +}
|
| +
|
| +} // namespace invalidation
|
|
|