blob: 949892b0ff1ac2517e47f6bcdea4ed8730ed9493 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/feed/core/v2/enums.h"
#include <ostream>
#include <string_view>
namespace feed {
// Included for debug builds only for reduced binary size.
std::ostream& operator<<(std::ostream& out, NetworkRequestType value) {
#ifndef NDEBUG
switch (value) {
case NetworkRequestType::kFeedQuery:
return out << "kFeedQuery";
case NetworkRequestType::kUploadActions:
return out << "kUploadActions";
case NetworkRequestType::kNextPage:
return out << "kNextPage";
case NetworkRequestType::kListWebFeeds:
return out << "kListWebFeeds";
case NetworkRequestType::kUnfollowWebFeed:
return out << "kUnfollowWebFeed";
case NetworkRequestType::kFollowWebFeed:
return out << "kFollowWebFeed";
case NetworkRequestType::kListRecommendedWebFeeds:
return out << "kListRecommendedWebFeeds";
case NetworkRequestType::kWebFeedListContents:
return out << "kWebFeedListContents";
case NetworkRequestType::kQueryInteractiveFeed:
return out << "kQueryInteractiveFeed";
case NetworkRequestType::kQueryBackgroundFeed:
return out << "kQueryBackgroundFeed";
case NetworkRequestType::kQueryNextPage:
return out << "kQueryNextPage";
case NetworkRequestType::kSingleWebFeedListContents:
return out << "kSingleWebFeedListContents";
case NetworkRequestType::kQueryWebFeed:
return out << "kQueryWebFeed";
}
#endif
return out << (static_cast<int>(value));
}
std::ostream& operator<<(std::ostream& out, LoadStreamStatus value) {
#ifndef NDEBUG
switch (value) {
case LoadStreamStatus::kNoStatus:
return out << "kNoStatus";
case LoadStreamStatus::kLoadedFromStore:
return out << "kLoadedFromStore";
case LoadStreamStatus::kLoadedFromNetwork:
return out << "kLoadedFromNetwork";
case LoadStreamStatus::kFailedWithStoreError:
return out << "kFailedWithStoreError";
case LoadStreamStatus::kNoStreamDataInStore:
return out << "kNoStreamDataInStore";
case LoadStreamStatus::kModelAlreadyLoaded:
return out << "kModelAlreadyLoaded";
case LoadStreamStatus::kNoResponseBody:
return out << "kNoResponseBody";
case LoadStreamStatus::kProtoTranslationFailed:
return out << "kProtoTranslationFailed";
case LoadStreamStatus::kDataInStoreIsStale:
return out << "kDataInStoreIsStale";
case LoadStreamStatus::kDataInStoreIsStaleTimestampInFuture:
return out << "kDataInStoreIsStaleTimestampInFuture";
case LoadStreamStatus::
kCannotLoadFromNetworkSupressedForHistoryDelete_DEPRECATED:
return out
<< "kCannotLoadFromNetworkSupressedForHistoryDelete_DEPRECATED";
case LoadStreamStatus::kCannotLoadFromNetworkOffline:
return out << "kCannotLoadFromNetworkOffline";
case LoadStreamStatus::kCannotLoadFromNetworkThrottled:
return out << "kCannotLoadFromNetworkThrottled";
case LoadStreamStatus::kLoadNotAllowedEulaNotAccepted:
return out << "kLoadNotAllowedEulaNotAccepted";
case LoadStreamStatus::kLoadNotAllowedArticlesListHidden:
return out << "kLoadNotAllowedArticlesListHidden";
case LoadStreamStatus::kCannotParseNetworkResponseBody:
return out << "kCannotParseNetworkResponseBody";
case LoadStreamStatus::kLoadMoreModelIsNotLoaded:
return out << "kLoadMoreModelIsNotLoaded";
case LoadStreamStatus::kLoadNotAllowedDisabledByEnterprisePolicy:
return out << "kLoadNotAllowedDisabledByEnterprisePolicy";
case LoadStreamStatus::kNetworkFetchFailed:
return out << "kNetworkFetchFailed";
case LoadStreamStatus::kCannotLoadMoreNoNextPageToken:
return out << "kCannotLoadMoreNoNextPageToken";
case LoadStreamStatus::kDataInStoreStaleMissedLastRefresh:
return out << "kDataInStoreStaleMissedLastRefresh";
case LoadStreamStatus::kLoadedStaleDataFromStoreDueToNetworkFailure:
return out << "kLoadedStaleDataFromStoreDueToNetworkFailure";
case LoadStreamStatus::kDataInStoreIsExpired:
return out << "kDataInStoreIsExpired";
case LoadStreamStatus::kDataInStoreIsForAnotherUser:
return out << "kDataInStoreIsForAnotherUser";
case LoadStreamStatus::kAbortWithPendingClearAll:
return out << "kAbortWithPendingClearAll";
case LoadStreamStatus::kAlreadyHaveUnreadContent:
return out << "kAlreadyHaveUnreadContent";
case LoadStreamStatus::kNotAWebFeedSubscriber:
return out << "kNotAWebFeedSubscriber";
case LoadStreamStatus::kAccountTokenFetchFailedWrongAccount:
return out << "kAccountTokenFetchFailedWrongAccount";
case LoadStreamStatus::kAccountTokenFetchTimedOut:
return out << "kAccountTokenFetchTimedOut";
case LoadStreamStatus::kNetworkFetchTimedOut:
return out << "kNetworkFetchTimedOut";
case LoadStreamStatus::kLoadNotAllowedDisabled:
return out << "kLoadNotAllowedDisabled";
case LoadStreamStatus::kLoadNotAllowedDisabledByDse:
return out << "kLoadNotAllowedDisabledByDse";
case LoadStreamStatus::kNoCardReceived:
return out << "kNoCardReceived";
}
#else
return out << (static_cast<int>(value));
#endif // ifndef NDEBUG
}
bool IsLoadingSuccessfulAndFresh(LoadStreamStatus status) {
switch (status) {
case LoadStreamStatus::kLoadedFromStore:
case LoadStreamStatus::kLoadedFromNetwork:
return true;
case LoadStreamStatus::kNoStatus:
case LoadStreamStatus::kFailedWithStoreError:
case LoadStreamStatus::kNoStreamDataInStore:
case LoadStreamStatus::kModelAlreadyLoaded:
case LoadStreamStatus::kNoResponseBody:
case LoadStreamStatus::kProtoTranslationFailed:
case LoadStreamStatus::kDataInStoreIsStale:
case LoadStreamStatus::kDataInStoreIsStaleTimestampInFuture:
case LoadStreamStatus::
kCannotLoadFromNetworkSupressedForHistoryDelete_DEPRECATED:
case LoadStreamStatus::kCannotLoadFromNetworkOffline:
case LoadStreamStatus::kCannotLoadFromNetworkThrottled:
case LoadStreamStatus::kLoadNotAllowedEulaNotAccepted:
case LoadStreamStatus::kLoadNotAllowedArticlesListHidden:
case LoadStreamStatus::kCannotParseNetworkResponseBody:
case LoadStreamStatus::kLoadMoreModelIsNotLoaded:
case LoadStreamStatus::kLoadNotAllowedDisabledByEnterprisePolicy:
case LoadStreamStatus::kNetworkFetchFailed:
case LoadStreamStatus::kCannotLoadMoreNoNextPageToken:
case LoadStreamStatus::kDataInStoreStaleMissedLastRefresh:
case LoadStreamStatus::kLoadedStaleDataFromStoreDueToNetworkFailure:
case LoadStreamStatus::kDataInStoreIsExpired:
case LoadStreamStatus::kDataInStoreIsForAnotherUser:
case LoadStreamStatus::kAbortWithPendingClearAll:
case LoadStreamStatus::kAlreadyHaveUnreadContent:
case LoadStreamStatus::kNotAWebFeedSubscriber:
case LoadStreamStatus::kAccountTokenFetchFailedWrongAccount:
case LoadStreamStatus::kAccountTokenFetchTimedOut:
case LoadStreamStatus::kNetworkFetchTimedOut:
case LoadStreamStatus::kLoadNotAllowedDisabled:
case LoadStreamStatus::kLoadNotAllowedDisabledByDse:
case LoadStreamStatus::kNoCardReceived:
return false;
}
}
std::ostream& operator<<(std::ostream& out, UploadActionsStatus value) {
#ifndef NDEBUG
switch (value) {
case UploadActionsStatus::kNoStatus:
return out << "kNoStatus";
case UploadActionsStatus::kNoPendingActions:
return out << "kNoPendingActions";
case UploadActionsStatus::kFailedToStorePendingAction:
return out << "kFailedToStorePendingAction";
case UploadActionsStatus::kStoredPendingAction:
return out << "kStoredPendingAction";
case UploadActionsStatus::kUpdatedConsistencyToken:
return out << "kUpdatedConsistencyToken";
case UploadActionsStatus::kFinishedWithoutUpdatingConsistencyToken:
return out << "kFinishedWithoutUpdatingConsistencyToken";
case UploadActionsStatus::kAbortUploadForSignedOutUser:
return out << "kAbortUploadForSignedOutUser";
case UploadActionsStatus::kAbortUploadBecauseDisabled:
return out << "kAbortUploadBecauseDisabled";
case UploadActionsStatus::kAbortUploadForWrongUser:
return out << "kAbortUploadForWrongUser";
case UploadActionsStatus::kAbortUploadActionsWithPendingClearAll:
return out << "kAbortUploadActionsWithPendingClearAll";
}
#else
return out << (static_cast<int>(value));
#endif // ifndef NDEBUG
}
std::ostream& operator<<(std::ostream& out, UploadActionsBatchStatus value) {
#ifndef NDEBUG
switch (value) {
case UploadActionsBatchStatus::kNoStatus:
return out << "kNoStatus";
case UploadActionsBatchStatus::kFailedToUpdateStore:
return out << "kFailedToUpdateStore";
case UploadActionsBatchStatus::kFailedToUpload:
return out << "kFailedToUpload";
case UploadActionsBatchStatus::kFailedToRemoveUploadedActions:
return out << "kFailedToRemoveUploadedActions";
case UploadActionsBatchStatus::kExhaustedUploadQuota:
return out << "kExhaustedUploadQuota";
case UploadActionsBatchStatus::kAllActionsWereStale:
return out << "kAllActionsWereStale";
case UploadActionsBatchStatus::kSuccessfullyUploadedBatch:
return out << "kSuccessfullyUploadedBatch";
}
#else
return out << (static_cast<int>(value));
#endif // ifndef NDEBUG
}
std::ostream& operator<<(std::ostream& out, WebFeedRefreshStatus value) {
switch (value) {
case WebFeedRefreshStatus::kNoStatus:
return out << "kNoStatus";
case WebFeedRefreshStatus::kSuccess:
return out << "kSuccess";
case WebFeedRefreshStatus::kNetworkFailure:
return out << "kNetworkFailure";
case WebFeedRefreshStatus::kNetworkRequestThrottled:
return out << "kNetworkRequestThrottled";
case WebFeedRefreshStatus::kAbortFetchWebFeedPendingClearAll:
return out << "kAbortFetchWebFeedPendingClearAll";
}
}
std::string_view ToString(UserSettingsOnStart v) {
switch (v) {
case UserSettingsOnStart::kFeedNotEnabledByPolicy:
return "FeedNotEnabledByPolicy";
case UserSettingsOnStart::kFeedNotVisibleSignedOut:
return "FeedNotVisibleSignedOut";
case UserSettingsOnStart::kFeedNotVisibleSignedIn:
return "FeedNotVisibleSignedIn";
case UserSettingsOnStart::kSignedOut:
return "SignedOut";
case UserSettingsOnStart::kSignedInWaaOnDpOn:
return "SignedInWaaOnDpOn";
case UserSettingsOnStart::kSignedInWaaOnDpOff:
return "SignedInWaaOnDpOff";
case UserSettingsOnStart::kSignedInWaaOffDpOn:
return "SignedInWaaOffDpOn";
case UserSettingsOnStart::kSignedInWaaOffDpOff:
return "SignedInWaaOffDpOff";
case UserSettingsOnStart::kSignedInNoRecentData:
return "SignedInNoRecentData";
case UserSettingsOnStart::kFeedNotEnabled:
return "FeedNotEnabled";
case UserSettingsOnStart::kFeedNotEnabledByDse:
return "FeedNotEnabledByDse";
}
return "Unknown";
}
std::ostream& operator<<(std::ostream& out, UserSettingsOnStart value) {
return out << ToString(value);
}
} // namespace feed