15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/notifier/invalidator_state.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncer {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* InvalidatorStateToString(InvalidatorState state) {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (state) {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case TRANSIENT_INVALIDATION_ERROR:
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return "TRANSIENT_INVALIDATION_ERROR";
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case INVALIDATION_CREDENTIALS_REJECTED:
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return "INVALIDATION_CREDENTIALS_REJECTED";
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case INVALIDATIONS_ENABLED:
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return "INVALIDATIONS_ENABLED";
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NOTREACHED();
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return "UNKNOWN_INVALIDATOR_STATE";
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)InvalidatorState FromNotifierReason(
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    notifier::NotificationsDisabledReason reason) {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (reason) {
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case notifier::NO_NOTIFICATION_ERROR:
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return INVALIDATIONS_ENABLED;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case notifier::TRANSIENT_NOTIFICATION_ERROR:
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return TRANSIENT_INVALIDATION_ERROR;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case notifier::NOTIFICATION_CREDENTIALS_REJECTED:
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return INVALIDATION_CREDENTIALS_REJECTED;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NOTREACHED();
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return DEFAULT_INVALIDATION_ERROR;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)notifier::NotificationsDisabledReason ToNotifierReasonForTest(
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    InvalidatorState state) {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (state) {
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case TRANSIENT_INVALIDATION_ERROR:
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return notifier::TRANSIENT_NOTIFICATION_ERROR;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case INVALIDATION_CREDENTIALS_REJECTED:
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return notifier::NOTIFICATION_CREDENTIALS_REJECTED;
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case INVALIDATIONS_ENABLED:
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      // Fall through.
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NOTREACHED();
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return notifier::TRANSIENT_NOTIFICATION_ERROR;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace syncer
56