pvxslibs 1.2.2a1__cp37-cp37m-manylinux1_x86_64.whl → 1.2.3__cp37-cp37m-manylinux1_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pvxslibs might be problematic. Click here for more details.

@@ -61,7 +61,8 @@ namespace ioc {
61
61
  * initHookRegister(&myinitHook);
62
62
  * }
63
63
  * extern "C" {
64
- * epicsExportRegistrar(myregistrar); // needs matching entry in .dbd
64
+ * // needs matching "registrar(myregistrar)" in .dbd
65
+ * epicsExportRegistrar(myregistrar);
65
66
  * }
66
67
  * @endcode
67
68
  */
@@ -81,6 +82,15 @@ server::Server server();
81
82
  PVXS_IOC_API
82
83
  long dbLoadGroup(const char* jsonFilename, const char* macros=nullptr);
83
84
 
85
+ /** Call just after testdbPrepare()
86
+ *
87
+ * Prepare QSRV for re-test. Optional if testdbPrepare() called only once.
88
+ * Required after subsequent calls.
89
+ * @since 1.2.3
90
+ */
91
+ PVXS_IOC_API
92
+ void testPrepare();
93
+
84
94
  /** Call just before testIocShutdownOk()
85
95
  *
86
96
  * Shutdown QSRV. Only needed with Base <= 7.0.4 .
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright - See the COPYRIGHT that is included with this distribution.
3
+ * pvxs is distributed subject to a Software License Agreement found
4
+ * in file LICENSE that is included with this distribution.
5
+ */
1
6
  #ifndef PVXS_NETCOMMON_H
2
7
  #define PVXS_NETCOMMON_H
3
8
 
@@ -6,6 +6,8 @@
6
6
  #ifndef PVXS_NT_H
7
7
  #define PVXS_NT_H
8
8
 
9
+ #include <memory>
10
+
9
11
  #include <pvxs/version.h>
10
12
  #include <pvxs/data.h>
11
13
 
@@ -105,6 +107,44 @@ struct NTEnum {
105
107
  }
106
108
  };
107
109
 
110
+ /** Columnar data.
111
+ *
112
+ * Unlike other NT* builders. This create() method returns a Value
113
+ * with the labels field set, and marked. While suitable for an
114
+ * initial value, repeated create() could result in re-sending
115
+ * the same labels array with every update. Users should
116
+ * create() once, and then Value::cloneEmpty() or Value::unmark() for
117
+ * subsequent updates.
118
+ *
119
+ * @since 1.2.3
120
+ */
121
+ struct PVXS_API NTTable final {
122
+
123
+ NTTable();
124
+ ~NTTable();
125
+
126
+ /** Append a column
127
+ *
128
+ * @param code Value type of column
129
+ * @param name Field name of column
130
+ * @param label Display label of column. (defaults to field name)
131
+ * Only used in create().
132
+ * @returns this
133
+ */
134
+ NTTable& add_column(TypeCode code,
135
+ const char *name,
136
+ const char *label=nullptr);
137
+
138
+ //! A TypeDef which can be appended
139
+ TypeDef build() const;
140
+ //! Instantiate. Also populates labels list.
141
+ Value create() const;
142
+
143
+ struct Pvt;
144
+ private:
145
+ std::shared_ptr<Pvt> pvt;
146
+ };
147
+
108
148
  /** The areaDetector inspired N-dimension array/image container.
109
149
  *
110
150
  * @code
@@ -30,6 +30,7 @@ public:
30
30
  //! @throws std::runtime_error if the client pvRequest() field mask does not select any fields of prototype.
31
31
  virtual void connect(const Value& prototype) =0;
32
32
  //! Indicate that this operation can not be setup
33
+ //! @since 1.2.3 Does not block
33
34
  virtual void error(const std::string& msg) =0;
34
35
 
35
36
  ConnectOp(const std::string& name,
@@ -145,6 +146,7 @@ public:
145
146
  virtual std::unique_ptr<MonitorControlOp> connect(const Value& prototype) =0;
146
147
 
147
148
  //! Indicate that this operation can not be setup
149
+ //! @since 1.2.3 Does not block
148
150
  virtual void error(const std::string& msg) =0;
149
151
 
150
152
  MonitorSetupOp(const std::string& name,
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright - See the COPYRIGHT that is included with this distribution.
3
+ * pvxs is distributed subject to a Software License Agreement found
4
+ * in file LICENSE that is included with this distribution.
5
+ */
1
6
  #ifndef PVXS_SRVCOMMON_H
2
7
  #define PVXS_SRVCOMMON_H
3
8
 
@@ -94,6 +99,7 @@ struct PVXS_API ExecOp : public OpBase {
94
99
  //! Issue a reply with data. For a GET or RPC (or PUT/Get)
95
100
  virtual void reply(const Value& val) =0;
96
101
  //! Indicate the request has resulted in an error.
102
+ //! @since 1.2.3 Does not block
97
103
  virtual void error(const std::string& msg) =0;
98
104
 
99
105
  //! Callback invoked if the peer cancels the operation before reply() or error() is called.
@@ -179,6 +179,17 @@ private:
179
179
  PVXS_API
180
180
  std::ostream& target_information(std::ostream&);
181
181
 
182
+ /** Print version information for PVXS library and dependencies
183
+ *
184
+ * As shown by eg. ``pvxget -V``
185
+ *
186
+ * @returns The same ostream passed as argument.
187
+ *
188
+ * @since 1.2.3
189
+ */
190
+ PVXS_API
191
+ std::ostream& version_information(std::ostream&);
192
+
182
193
  /** Thread-safe, bounded, multi-producer, multi-consumer FIFO queue.
183
194
  *
184
195
  * Queue value_type must be movable. If T is also copy constructable,
@@ -235,7 +246,7 @@ public:
235
246
  */
236
247
  template<typename ...Args>
237
248
  void emplace(Args&&... args) {
238
- bool wakeup;
249
+ bool wakeupR, wakeupW;
239
250
  {
240
251
  Guard G(lock);
241
252
  // while full, wait for reader to consume an entry
@@ -248,11 +259,15 @@ public:
248
259
  nwriters--;
249
260
  }
250
261
  // notify reader when queue becomes not empty
251
- wakeup = Q.empty() && nreaders;
262
+ wakeupR = Q.empty() && nreaders;
252
263
  Q.emplace_back(std::forward<Args>(args)...);
264
+ // wakeup next writer if there is still space
265
+ wakeupW = nwriters && Q.size()<nlimit;
253
266
  }
254
- if(wakeup)
267
+ if(wakeupR)
255
268
  notifyR.signal();
269
+ if(wakeupW)
270
+ notifyW.signal();
256
271
  }
257
272
 
258
273
  //! Move a new element to the queue
@@ -3,4 +3,4 @@
3
3
  #endif
4
4
  #define PVXS_MAJOR_VERSION 1
5
5
  #define PVXS_MINOR_VERSION 2
6
- #define PVXS_MAINTENANCE_VERSION 2
6
+ #define PVXS_MAINTENANCE_VERSION 3
Binary file
Binary file
Binary file
Binary file
pvxslibs/lib/libpvxs.so CHANGED
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvxslibs
3
- Version: 1.2.2a1
3
+ Version: 1.2.3
4
4
  Summary: PVXS libraries packaged for python
5
5
  Home-page: https://mdavidsaver.github.io/pvxs
6
6
  Author: Michael Davidsaver
@@ -22,8 +22,8 @@ Classifier: Operating System :: Microsoft :: Windows
22
22
  Requires-Python: >=2.7
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
- Requires-Dist: setuptools-dso (>=2.7a1)
26
- Requires-Dist: epicscorelibs (<7.0.7.99.1,>=7.0.7.99.0.2a1)
25
+ Requires-Dist: setuptools-dso >=2.7a1
26
+ Requires-Dist: epicscorelibs <7.0.7.99.1,>=7.0.7.99.0.2
27
27
 
28
28
  PVXS - PVAccess protocol library
29
29
  ================================
@@ -0,0 +1,39 @@
1
+ pvxslibs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ pvxslibs/path.py,sha256=nWn5TT5xkbHakc0UwiET3_NbOZg-jr4yibrGKYZ7IoU,258
3
+ pvxslibs/version.py,sha256=vmbnHFP7nheGuX7r7LAKgJ4c2joFyUd4BPqeM4bpUfQ,984
4
+ pvxslibs/dbd/pvxsIoc.dbd,sha256=qQkW_9r54zXgXpDIcpihHQN9wcmZ9mTn61fatDe-v18,281
5
+ pvxslibs/include/pvxs/client.h,sha256=S-5NKislCENkrypDalm4T3ZG9Kn486w-lUQEscj-z6c,36954
6
+ pvxslibs/include/pvxs/data.h,sha256=19NwOI51ZHhDpjYRp0ClO9UJd8BJlP9cd7In7fLoXMs,28570
7
+ pvxslibs/include/pvxs/iochooks.h,sha256=DmFxY5eI_u2KltNrzP5OVPF50SptJY07Pq3TC36zNvs,3029
8
+ pvxslibs/include/pvxs/log.h,sha256=2hqmFQ300vhl7mtToc4LBAVJqBgs1QMYz92pmLv1ab4,4959
9
+ pvxslibs/include/pvxs/netcommon.h,sha256=yrVn8qVBPCEZoW4eJZjR46axAsQr7pQi4L_MdxWByCU,2124
10
+ pvxslibs/include/pvxs/nt.h,sha256=AiiWlkSyfauthaGTefu0cYLr74B7TVW26yEdByeG1Ao,4761
11
+ pvxslibs/include/pvxs/server.h,sha256=RhdfJRZepFO7kwIzAWdTmJITtg3WCBnKumk5BhkL91o,7838
12
+ pvxslibs/include/pvxs/sharedArray.h,sha256=iRxhRgYbcMg6WWB15KbwML6THyFLqZ0QEvMHLj_wxc0,23748
13
+ pvxslibs/include/pvxs/sharedpv.h,sha256=VPrngwKEOjtGW708clV6rDtn8CarBMSkSM-S6SEmxDM,4143
14
+ pvxslibs/include/pvxs/source.h,sha256=-mt7mQ2LiEknkEs0J9hiB8CoJtxIi_XFb5sfsPxH4rQ,10308
15
+ pvxslibs/include/pvxs/srvcommon.h,sha256=ph_7mVX2fe8dd2eBQyaYUvnDMra4SnzUrMZ99jeORGY,4523
16
+ pvxslibs/include/pvxs/unittest.h,sha256=uTteII0JrLhTK6dGjaInZKOwsuJ9-hockFaPwifvdbA,10182
17
+ pvxslibs/include/pvxs/util.h,sha256=-EcvbTWT6B3mlwgSBBmkkbSo5q7RJYZDw1aoqqN-U_E,8968
18
+ pvxslibs/include/pvxs/version.h,sha256=vJiv3HIHEag2bkTHm-XOThc_KqWV0xWQpWOzFnAbD1g,2721
19
+ pvxslibs/include/pvxs/versionNum.h,sha256=O0SfAariLpb4uGoPolIYQ6DtooKQkengBct1UoWnvUY,176
20
+ pvxslibs/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ pvxslibs/lib/event_core_dsoinfo.py,sha256=ODB3bm08Mq3SrxP8VInAOHWaowhpz0lfoJZNNo1_dtw,347
22
+ pvxslibs/lib/event_pthread_dsoinfo.py,sha256=dgNHgYcTQgKyTvMR09zYPK3XkS4Id29u3kYC919dIUk,356
23
+ pvxslibs/lib/libevent_core.so,sha256=copUri61fQ-BbgQ1TV_cD1azDYUbGVAEGCg1j54iw24,979412
24
+ pvxslibs/lib/libevent_core.so.2.2.0,sha256=copUri61fQ-BbgQ1TV_cD1azDYUbGVAEGCg1j54iw24,979412
25
+ pvxslibs/lib/libevent_pthread.so,sha256=PwUZ0FN2_5gJgzuScx_fUNSz0Idso9q4Jj7iXpfCwf4,24252
26
+ pvxslibs/lib/libevent_pthread.so.2.2.0,sha256=PwUZ0FN2_5gJgzuScx_fUNSz0Idso9q4Jj7iXpfCwf4,24252
27
+ pvxslibs/lib/libpvxs.so,sha256=QYaA-Qa6KAx2eq5SPeo4OFwAxSrn8dALJTE9Na180IY,1773940
28
+ pvxslibs/lib/libpvxs.so.1.2,sha256=QYaA-Qa6KAx2eq5SPeo4OFwAxSrn8dALJTE9Na180IY,1773940
29
+ pvxslibs/lib/libpvxsIoc.so,sha256=YqeLhBXFWREbQvmu4suSscjA5W8RQmzu54uV6-cH98Q,412732
30
+ pvxslibs/lib/libpvxsIoc.so.1.2,sha256=YqeLhBXFWREbQvmu4suSscjA5W8RQmzu54uV6-cH98Q,412732
31
+ pvxslibs/lib/pvxsIoc_dsoinfo.py,sha256=6u2ah5JWP8WAL_rS80sRU6MMzIUGZMlWRKlBa-Tj0LE,465
32
+ pvxslibs/lib/pvxs_dsoinfo.py,sha256=IsPWloTmzQ7jo22BhEfZd4R9snpNNOtpQ1gScn9N4OE,407
33
+ pvxslibs/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ pvxslibs/test/test_load.py,sha256=mueD9wz4IBkCRS0TY76spkOS_nw4IBdkofl_fA9hIfg,995
35
+ pvxslibs-1.2.3.dist-info/LICENSE,sha256=XViOs7FX1SESr-qTXIin_5793B4tlaQsJdO5atkFUAg,1499
36
+ pvxslibs-1.2.3.dist-info/METADATA,sha256=zYnYqWYik0kjAGRnohXJYoim3aJJ2MXLASfctngwfeY,1199
37
+ pvxslibs-1.2.3.dist-info/WHEEL,sha256=xd96zpH7kRPY3eMZU7f0QAtsCPJoVsXqYtPBM9HNtrE,109
38
+ pvxslibs-1.2.3.dist-info/top_level.txt,sha256=RixlMjBFoSBZhAgzdvurnG0N681VoNV0ikf00-HgXFM,9
39
+ pvxslibs-1.2.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: bdist_wheel (0.41.2)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp37-cp37m-manylinux1_x86_64
5
5
 
@@ -1,39 +0,0 @@
1
- pvxslibs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- pvxslibs/path.py,sha256=nWn5TT5xkbHakc0UwiET3_NbOZg-jr4yibrGKYZ7IoU,258
3
- pvxslibs/version.py,sha256=vmbnHFP7nheGuX7r7LAKgJ4c2joFyUd4BPqeM4bpUfQ,984
4
- pvxslibs/dbd/pvxsIoc.dbd,sha256=qQkW_9r54zXgXpDIcpihHQN9wcmZ9mTn61fatDe-v18,281
5
- pvxslibs/include/pvxs/client.h,sha256=S-5NKislCENkrypDalm4T3ZG9Kn486w-lUQEscj-z6c,36954
6
- pvxslibs/include/pvxs/data.h,sha256=19NwOI51ZHhDpjYRp0ClO9UJd8BJlP9cd7In7fLoXMs,28570
7
- pvxslibs/include/pvxs/iochooks.h,sha256=J_seOuc9_iMqb6dasrvjVUNQbOnEuaU8Nk76XBpUp3g,2794
8
- pvxslibs/include/pvxs/log.h,sha256=2hqmFQ300vhl7mtToc4LBAVJqBgs1QMYz92pmLv1ab4,4959
9
- pvxslibs/include/pvxs/netcommon.h,sha256=__fSN5tbu_3HzXtkej5ulgJ8EyyGIskRUVcXHzNhu8A,1913
10
- pvxslibs/include/pvxs/nt.h,sha256=14a7b6HGmemS2h6LVs60STAjza2E87i6sjqPsfjLzLw,3688
11
- pvxslibs/include/pvxs/server.h,sha256=RhdfJRZepFO7kwIzAWdTmJITtg3WCBnKumk5BhkL91o,7838
12
- pvxslibs/include/pvxs/sharedArray.h,sha256=iRxhRgYbcMg6WWB15KbwML6THyFLqZ0QEvMHLj_wxc0,23748
13
- pvxslibs/include/pvxs/sharedpv.h,sha256=VPrngwKEOjtGW708clV6rDtn8CarBMSkSM-S6SEmxDM,4143
14
- pvxslibs/include/pvxs/source.h,sha256=XosjhVQwFoZKZ2YG6Egv5HmupwRIbtSaL4b1XHPPe4Q,10236
15
- pvxslibs/include/pvxs/srvcommon.h,sha256=-afwMkx5dqCYbznbMSXuXg2HN4DGstUhwCExH1VqGQE,4276
16
- pvxslibs/include/pvxs/unittest.h,sha256=uTteII0JrLhTK6dGjaInZKOwsuJ9-hockFaPwifvdbA,10182
17
- pvxslibs/include/pvxs/util.h,sha256=5L1pkyt8_XzLox9yp7vedvIDEzOd6stu3kAN1gBOJnE,8562
18
- pvxslibs/include/pvxs/version.h,sha256=vJiv3HIHEag2bkTHm-XOThc_KqWV0xWQpWOzFnAbD1g,2721
19
- pvxslibs/include/pvxs/versionNum.h,sha256=44GAm5VmqDTTtOV4DRpv2Zmg1OsxD68iIN7bx1aRqR4,176
20
- pvxslibs/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- pvxslibs/lib/event_core_dsoinfo.py,sha256=ODB3bm08Mq3SrxP8VInAOHWaowhpz0lfoJZNNo1_dtw,347
22
- pvxslibs/lib/event_pthread_dsoinfo.py,sha256=dgNHgYcTQgKyTvMR09zYPK3XkS4Id29u3kYC919dIUk,356
23
- pvxslibs/lib/libevent_core.so,sha256=t3svrU8oNdVvLsdltEQ4MwIe8i2KfCgUPsI7XWTRi-M,979412
24
- pvxslibs/lib/libevent_core.so.2.2.0,sha256=t3svrU8oNdVvLsdltEQ4MwIe8i2KfCgUPsI7XWTRi-M,979412
25
- pvxslibs/lib/libevent_pthread.so,sha256=01_dOMKzOIKzCXhIo6izo0qMeAbRBsqVxPR5FNsYXP4,24252
26
- pvxslibs/lib/libevent_pthread.so.2.2.0,sha256=01_dOMKzOIKzCXhIo6izo0qMeAbRBsqVxPR5FNsYXP4,24252
27
- pvxslibs/lib/libpvxs.so,sha256=h8lhyXGzVXqZ_dT5YOntB1H4ptIkMv2X7mAdMOOFfL8,1758226
28
- pvxslibs/lib/libpvxs.so.1.2,sha256=h8lhyXGzVXqZ_dT5YOntB1H4ptIkMv2X7mAdMOOFfL8,1758226
29
- pvxslibs/lib/libpvxsIoc.so,sha256=WiWO552VvV-0z8e5eoLeL4MUNEOOvACPLh2Hxm6yVaU,408173
30
- pvxslibs/lib/libpvxsIoc.so.1.2,sha256=WiWO552VvV-0z8e5eoLeL4MUNEOOvACPLh2Hxm6yVaU,408173
31
- pvxslibs/lib/pvxsIoc_dsoinfo.py,sha256=6u2ah5JWP8WAL_rS80sRU6MMzIUGZMlWRKlBa-Tj0LE,465
32
- pvxslibs/lib/pvxs_dsoinfo.py,sha256=IsPWloTmzQ7jo22BhEfZd4R9snpNNOtpQ1gScn9N4OE,407
33
- pvxslibs/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- pvxslibs/test/test_load.py,sha256=mueD9wz4IBkCRS0TY76spkOS_nw4IBdkofl_fA9hIfg,995
35
- pvxslibs-1.2.2a1.dist-info/LICENSE,sha256=XViOs7FX1SESr-qTXIin_5793B4tlaQsJdO5atkFUAg,1499
36
- pvxslibs-1.2.2a1.dist-info/METADATA,sha256=bzNAAR9gR4j0Tzc_Cn9i4v86yGUi_KQcD8xs6jZae58,1207
37
- pvxslibs-1.2.2a1.dist-info/WHEEL,sha256=y0fMgdo5SB7yPjxBJvI27L0HkDqOecmyKKwtZtA_KG4,109
38
- pvxslibs-1.2.2a1.dist-info/top_level.txt,sha256=RixlMjBFoSBZhAgzdvurnG0N681VoNV0ikf00-HgXFM,9
39
- pvxslibs-1.2.2a1.dist-info/RECORD,,