swift
dbflags.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include "misc/db/dbflags.h"
5 
6 #include <QStringList>
7 #include <QtGlobal>
8 
9 #include "misc/verify.h"
10 
11 namespace swift::misc::db
12 {
13  bool CDbFlags::readsFromWeb(CDbFlags::DataRetrievalMode mode)
14  {
15  return mode.testFlag(DbReading) || mode.testFlag(Shared);
16  }
17 
19  {
20  switch (flag)
21  {
22  case Unspecified: return "Unspecified";
23  case Ignore: return "Ignore";
24  case Canceled: return "Canceled";
25  case DbReading: return "Direct DB access";
26  case DbWriting: return "DB writing";
27  case Shared: return "Shared data";
28  case SharedInfoOnly: return "Shared info only";
29  case Cached: return "Cached data";
30  default: SWIFT_VERIFY_X(false, Q_FUNC_INFO, "wrong flags"); return "wrong flags";
31  }
32  }
33 
34  QString CDbFlags::flagToString(CDbFlags::DataRetrievalMode mode)
35  {
36  QStringList list;
37  if (mode.testFlag(Unspecified)) list << "Unspecified";
38  if (mode.testFlag(Canceled)) list << "Canceled";
39  if (mode.testFlag(Ignore)) list << "Ignore";
40 
41  if (mode.testFlag(DbReading)) list << "Direct DB access";
42  if (mode.testFlag(DbWriting)) list << "DB writing";
43  if (mode.testFlag(Shared)) list << "Shared data";
44  if (mode.testFlag(SharedInfoOnly)) list << "Shared info only";
45  if (mode.testFlag(Cached)) list << "Cached data";
46  return list.join(", ");
47  }
48 
50  {
51  if (mode == Unspecified) return Unspecified;
52  if (mode == DbReading) return DbReading;
53  if (mode == DbWriting) return DbWriting;
54  if (mode == Shared) return Shared;
55  if (mode == SharedInfoOnly) return SharedInfoOnly;
56  if (mode == Cached) return Cached;
57  if (mode == Canceled) return Canceled;
58  if (mode == Ignore) return Ignore;
59  return Unspecified;
60  }
61 
62  CDbFlags::DataRetrievalMode CDbFlags::adjustWhenDbIsDown(DataRetrievalMode mode)
63  {
64  switch (mode)
65  {
66  case DbReading: return Canceled;
67  case CacheThenDb: return Cached;
68  default: return mode;
69  }
70  }
71 
73  {
74  // this is no value class and I register enums here,
75  // that's why I do not use the Mixins
76  qRegisterMetaType<CDbFlags::DataRetrievalModeFlag>();
77  qRegisterMetaType<CDbFlags::DataRetrievalMode>();
78  }
79 } // namespace swift::misc::db
static void registerMetadata()
Register metadata.
Definition: dbflags.cpp:72
static DataRetrievalMode adjustWhenDbIsDown(DataRetrievalMode mode)
Adjust flag as we already know DB is down.
Definition: dbflags.cpp:62
DataRetrievalModeFlag
Which data to read, requires corresponding readers.
Definition: dbflags.h:25
@ DbWriting
DB writing.
Definition: dbflags.h:28
@ Canceled
canceled DB reading
Definition: dbflags.h:32
@ Unspecified
Unspecified.
Definition: dbflags.h:26
@ DbReading
directly from DB
Definition: dbflags.h:27
@ Shared
shared directory
Definition: dbflags.h:29
@ Ignore
ignore this entity
Definition: dbflags.h:33
@ SharedInfoOnly
shared info file only
Definition: dbflags.h:30
@ Cached
from cache
Definition: dbflags.h:31
@ CacheThenDb
Cache where possible, otherwise DB.
Definition: dbflags.h:34
static bool readsFromWeb(CDbFlags::DataRetrievalMode mode)
Reads from web (or just cached)
Definition: dbflags.cpp:13
static DataRetrievalModeFlag modeToModeFlag(DataRetrievalMode mode)
Mode to flag.
Definition: dbflags.cpp:49
static QString flagToString(DataRetrievalModeFlag flag)
Convert to string.
Definition: dbflags.cpp:18
#define SWIFT_VERIFY_X(COND, WHERE, WHAT)
A weaker kind of assert.
Definition: verify.h:26