stec-platform
retain.h
1 #ifndef RETAIN_H
2 #define RETAIN_H
3 /*
4 *
5 * $LastChangedDate: 2019-09-11 17:11:08 -0400 (Wed, 11 Sep 2019) $
6 * $LastChangedBy: ed $
7 * $Revision: 2031 $
8 * $Author: ed $
9 * $URL: svn+ssh://svn.vremsoft.com/var/share/svn/tags/platfom3.4.3/platformlib/retain.h $
10 * $Id: retain.h 2031 2019-09-11 21:11:08Z ed $
11 * edc@vremsoft.com
12 *
13 * 19
14 *
15 * *** 2014<c> ***
16 *
17 *
18 */
19 #include <QObject>
20 #include <platform_global.h>
21 #include <QObject>
22 #include <QHash>
23 #include <QString>
24 #include <publication.h>
25 #include <subscription.h>
26 
27 #include <QWriteLocker>
28 #include <QReadWriteLock>
29 
30 
42 class PLATFORMSHARED_EXPORT Retain : public QObject
43 {
44  Q_OBJECT
45 private :
46 
47  QHash<QString,Subscription *> subscribers;
48 
49 public:
50 
55  explicit Retain(QObject *parent = nullptr);
56 
58  virtual QString MangledKey( QString subscriber );
59 
61  virtual QString MangledKeyType(QString subscriber );
62 
64  virtual bool ReadValues(Subscription *subscriber)
65  {
66  Q_UNUSED(subscriber)
67  return false;
68  }
69 
71  virtual bool ReadValues(QString name, VremVArray &i1)
72  {
73  Q_UNUSED(name)
74  Q_UNUSED(i1)
75  return false;
76  }
77 
79  virtual bool RemoveTracking(Subscription *subscriber);
80 
82  virtual bool TrackValues(Subscription *subscriber );
83 
85  virtual void WriteValues(Subscription *subscriber)
86  {
87  Q_UNUSED(subscriber)
88  }
89 
90  virtual void WriteValues(QString name, const VremVArray i1)
91  {
92  Q_UNUSED(name)
93  Q_UNUSED(i1)
94  }
95 
96  static QVariantList ConvertToQVariantList(const VremVArray &varray)
97  {
98  QVariantList lst;
99 
100  for(int i = 0; i < varray.size(); ++i)
101  lst.push_back(varray[i]);
102  return lst;
103  }
104 
105  static VremVArray ConvertToVremVAarray(QVariantList &lst)
106  {
107  VremVArray va(lst.size());
108  for( int i = 0; i < va.size() && i < lst.size();++i)
109  {
110  va[i] = lst[i];
111  }
112  return va;
113  }
114 
115 
116 private slots :
117  void SlotNamedEventOccured(QString name, qint16 index, qint16 count, QVariant src);
118 
119 signals:
120 
121 public slots:
122 
123 
124 
125 
126 };
127 
128 #endif // RETAIN_H
The Retain class this retains data from a subscription, generally used for setup data so subscription...
Definition: retain.h:43
virtual void WriteValues(Subscription *subscriber)
method for writing
Definition: retain.h:85
virtual bool ReadValues(QString name, VremVArray &i1)
reads the last saved values of a subscriber
Definition: retain.h:71
virtual bool ReadValues(Subscription *subscriber)
reads the last saved values of a subscriber
Definition: retain.h:64
The Subscription class A platform subscriber must use or inheit this class.
Definition: subscription.h:43