pvxslibs 1.2.2__cp310-cp310-win_amd64.whl → 1.2.3__cp310-cp310-win_amd64.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
pvxslibs/lib/pvxs.dll CHANGED
Binary file
pvxslibs/lib/pvxs.exp CHANGED
Binary file
pvxslibs/lib/pvxs.lib CHANGED
Binary file
pvxslibs/lib/pvxsIoc.dll CHANGED
Binary file
pvxslibs/lib/pvxsIoc.exp CHANGED
Binary file
pvxslibs/lib/pvxsIoc.lib CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvxslibs
3
- Version: 1.2.2
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.2)
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=Drk6eD5yrFWT1LCY_ggKCdFamWqaq2sa7SwdAisZ4uw,270
3
+ pvxslibs/version.py,sha256=idyj3WCiCjGJGRvPqLE_TNfd5Gzxnx4c8pxGO0_AejI,1016
4
+ pvxslibs/dbd/pvxsIoc.dbd,sha256=C0GNwadEfWI9I2DLJzHHuYxwtuZ1p3UNAuive4PiWmc,290
5
+ pvxslibs/include/pvxs/client.h,sha256=X2EJh06OZyqa87jGnkUDIOt1MSi9BH2Ov7VFkyW7FXg,38045
6
+ pvxslibs/include/pvxs/data.h,sha256=xe38UJCGhrkMd_i2T8G-PTb_cKco-zMFRe1rSh4JKkI,29518
7
+ pvxslibs/include/pvxs/iochooks.h,sha256=xT7ywXD83E4qFlP0PCaITpdbH39Dt7Z657N8Gezulzk,3133
8
+ pvxslibs/include/pvxs/log.h,sha256=rnPEl1vTOBqf6vnYQFBafiPVYx2FlmRSvbDUMYO-0s0,5107
9
+ pvxslibs/include/pvxs/netcommon.h,sha256=ztBSnySq2yLngNn4hbRNQ0CEHsz12gSoCM0sV4buCRY,2206
10
+ pvxslibs/include/pvxs/nt.h,sha256=xBRXzaRImoX2laUq82ub_O-caN0DQQzLzdqSdzukTkU,4969
11
+ pvxslibs/include/pvxs/server.h,sha256=wTPDy464AQAJUDCCqf66uioCl3XJqHRlKN_X5Nk_rLs,8072
12
+ pvxslibs/include/pvxs/sharedArray.h,sha256=BMW9Ea1YjtpgnXEiQg_3SbL5mAG5On9uLvLLRxpSMlQ,24494
13
+ pvxslibs/include/pvxs/sharedpv.h,sha256=k6LasQsMrpHTPa9DasXKvWTppqwVZJ9vBHj8P5Q-9Cw,4264
14
+ pvxslibs/include/pvxs/source.h,sha256=icpS6mlRwOwMLeADXmrBT1PRWNETIA0zvJZ-4QYKGGo,10598
15
+ pvxslibs/include/pvxs/srvcommon.h,sha256=3uZoTUwz6DcHFXkRX3eFIYwKokaJfFxTW4i-TYkJifo,4661
16
+ pvxslibs/include/pvxs/unittest.h,sha256=237VuP0o3lMeRx1-gc8z1EsFzCRVwHSLrW_XUDxwsec,10509
17
+ pvxslibs/include/pvxs/util.h,sha256=5Dy9ySigLFASMY3P-Oikv8nq3XEYo7mcHgyYuPkezT0,9322
18
+ pvxslibs/include/pvxs/version.h,sha256=_vZXcm-UIOqNnqWqR7JW7CFYH2LNL5uY9AJQcUnR1l0,2818
19
+ pvxslibs/include/pvxs/versionNum.h,sha256=aknNQQD-AY8kstk1EIqHEkLghaNsHhJmbvjTClVNQig,182
20
+ pvxslibs/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ pvxslibs/lib/event_core.dll,sha256=FTRq5JM_ILlDb7jiw_7HYi88VpcbNfZIId98SSTny-U,199168
22
+ pvxslibs/lib/event_core.exp,sha256=L3Qo8N2QYEfyfSuxd0knC6Pi3BLlzLS3lMzIn7WIfDc,52056
23
+ pvxslibs/lib/event_core.lib,sha256=AEdJJuqeQftaLcxRtiXx4Hx4x0YPL3IWV0FXPp9tQKY,87182
24
+ pvxslibs/lib/event_core_dsoinfo.py,sha256=H0HQPHx7pnRhQ6fkEj-yJEfTEkj9GaA1mx-kW_fOhFk,351
25
+ pvxslibs/lib/pvxs.dll,sha256=G8_M732ClmdIogNUlHHvOt3z8riotrn3UkdgHl7paTY,902656
26
+ pvxslibs/lib/pvxs.exp,sha256=J2xHH39GDtuFJvKBxYomiQm2RTraPoTna-O-b_IyGLQ,154952
27
+ pvxslibs/lib/pvxs.lib,sha256=cjOHPvx64x6SZHtHzHWjc5gYp68Sb54A-S2emz56UAs,253008
28
+ pvxslibs/lib/pvxsIoc.dll,sha256=nLrGG3c3RkluIQBnCfe3SB6ewbkF4bqlQHE0UIoeoxM,230400
29
+ pvxslibs/lib/pvxsIoc.exp,sha256=mOmh8GEnKGD-ADELAhqackYdSNnAajX2Cm_lfsoB3Uc,2575
30
+ pvxslibs/lib/pvxsIoc.lib,sha256=xuym4EecO1qGvKgwzoBM_w8CUTXim-NeVGb8kvcM7XQ,4300
31
+ pvxslibs/lib/pvxsIoc_dsoinfo.py,sha256=4IZCE1G5oVQ5UhQVD42R8aF1r7Etztq851ZWWvEtHpI,471
32
+ pvxslibs/lib/pvxs_dsoinfo.py,sha256=qmYxkZldQ5Yzw5_PMqlmFpmODXGTKv0ZU8CqFBLpEZI,383
33
+ pvxslibs/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ pvxslibs/test/test_load.py,sha256=G06DLRJlk_mvGGBnm0kNmAo7HKlRBiuAYPk6rnWhZB4,1025
35
+ pvxslibs-1.2.3.dist-info/LICENSE,sha256=-ROhoot-GxWl5VV-rFFE_1K-41MEQzGJQvSSvyf6ntc,1525
36
+ pvxslibs-1.2.3.dist-info/METADATA,sha256=o-DXTqWBdC5W1t-Ad9rml7y2JZVplNDD5Iyb7PRX3vI,1232
37
+ pvxslibs-1.2.3.dist-info/WHEEL,sha256=yrvteVAZzxQvtDnzdCRh4dP01sPIxYhLXIXplC7o50E,102
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: cp310-cp310-win_amd64
5
5
 
@@ -1,39 +0,0 @@
1
- pvxslibs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- pvxslibs/path.py,sha256=Drk6eD5yrFWT1LCY_ggKCdFamWqaq2sa7SwdAisZ4uw,270
3
- pvxslibs/version.py,sha256=idyj3WCiCjGJGRvPqLE_TNfd5Gzxnx4c8pxGO0_AejI,1016
4
- pvxslibs/dbd/pvxsIoc.dbd,sha256=C0GNwadEfWI9I2DLJzHHuYxwtuZ1p3UNAuive4PiWmc,290
5
- pvxslibs/include/pvxs/client.h,sha256=X2EJh06OZyqa87jGnkUDIOt1MSi9BH2Ov7VFkyW7FXg,38045
6
- pvxslibs/include/pvxs/data.h,sha256=xe38UJCGhrkMd_i2T8G-PTb_cKco-zMFRe1rSh4JKkI,29518
7
- pvxslibs/include/pvxs/iochooks.h,sha256=alEZBz-SQ5_cT_0Li2ZFme-ZmmLOv2lSWbTu95AtF-s,2888
8
- pvxslibs/include/pvxs/log.h,sha256=rnPEl1vTOBqf6vnYQFBafiPVYx2FlmRSvbDUMYO-0s0,5107
9
- pvxslibs/include/pvxs/netcommon.h,sha256=-l0rf6ahqqPqsIGLW_C_oW9PxksJs7gWb5x0MHcOtK4,1990
10
- pvxslibs/include/pvxs/nt.h,sha256=WHCyxMrYLTVCh6fqMOuz62-9az5gAQowxlM5GezjRwo,3856
11
- pvxslibs/include/pvxs/server.h,sha256=wTPDy464AQAJUDCCqf66uioCl3XJqHRlKN_X5Nk_rLs,8072
12
- pvxslibs/include/pvxs/sharedArray.h,sha256=BMW9Ea1YjtpgnXEiQg_3SbL5mAG5On9uLvLLRxpSMlQ,24494
13
- pvxslibs/include/pvxs/sharedpv.h,sha256=k6LasQsMrpHTPa9DasXKvWTppqwVZJ9vBHj8P5Q-9Cw,4264
14
- pvxslibs/include/pvxs/source.h,sha256=tbQ7COKA16VPv1ag81bdAtHN9jOIm2m_Savj1wiIy3g,10524
15
- pvxslibs/include/pvxs/srvcommon.h,sha256=zzLoU0of7GFyLbdPBvTthz4in5RkoDaGWpv7nFJrMfQ,4408
16
- pvxslibs/include/pvxs/unittest.h,sha256=237VuP0o3lMeRx1-gc8z1EsFzCRVwHSLrW_XUDxwsec,10509
17
- pvxslibs/include/pvxs/util.h,sha256=pDmS-ogaTrRVksjmMSG6hj2hFEUcMKZnCMHgKdM2p-A,8901
18
- pvxslibs/include/pvxs/version.h,sha256=_vZXcm-UIOqNnqWqR7JW7CFYH2LNL5uY9AJQcUnR1l0,2818
19
- pvxslibs/include/pvxs/versionNum.h,sha256=Qs7FwAR-cjZZGMJ2yWo6fVNZt2cZtq18ZL-JbYeoPi4,182
20
- pvxslibs/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- pvxslibs/lib/event_core.dll,sha256=oj2FQ6zAc6pr3amfFxb2MZL9iCtlPMxn5_uSIwFQaEc,199168
22
- pvxslibs/lib/event_core.exp,sha256=X4W-NsNBFW_k5MNjhdYPhPy3CFa0LNjdMYgODsgXFlM,52056
23
- pvxslibs/lib/event_core.lib,sha256=c5NfdmiyzpMsk5320qNz4dEHdfrDx8ImJ-Xya88Koxw,87182
24
- pvxslibs/lib/event_core_dsoinfo.py,sha256=H0HQPHx7pnRhQ6fkEj-yJEfTEkj9GaA1mx-kW_fOhFk,351
25
- pvxslibs/lib/pvxs.dll,sha256=15xAAoxCX2mM8n4rAuo_gLtqaiy4xI_rGgaUhQRfnaU,891392
26
- pvxslibs/lib/pvxs.exp,sha256=baEvE4TeoBXi3XrfJ90WqC_6bR4WBKerPUB1Cb-vZC4,153016
27
- pvxslibs/lib/pvxs.lib,sha256=tBznbai7Y9y_vSwYhBk-JanRVcq01YTe0aLlIqQrezc,249834
28
- pvxslibs/lib/pvxsIoc.dll,sha256=HkgNP4Qu4yNm23V05w2b_lboMa07ucljPip-8fUdZzM,227840
29
- pvxslibs/lib/pvxsIoc.exp,sha256=kymbwBhsKfdlhmwY3mVTVi7u7FSt0-1m8jZd7sXxG7A,2413
30
- pvxslibs/lib/pvxsIoc.lib,sha256=Y6115aCnHNLcboM2Qwsm0GNyknEAYkOT6qCPFcHwgfo,4034
31
- pvxslibs/lib/pvxsIoc_dsoinfo.py,sha256=4IZCE1G5oVQ5UhQVD42R8aF1r7Etztq851ZWWvEtHpI,471
32
- pvxslibs/lib/pvxs_dsoinfo.py,sha256=qmYxkZldQ5Yzw5_PMqlmFpmODXGTKv0ZU8CqFBLpEZI,383
33
- pvxslibs/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- pvxslibs/test/test_load.py,sha256=G06DLRJlk_mvGGBnm0kNmAo7HKlRBiuAYPk6rnWhZB4,1025
35
- pvxslibs-1.2.2.dist-info/LICENSE,sha256=-ROhoot-GxWl5VV-rFFE_1K-41MEQzGJQvSSvyf6ntc,1525
36
- pvxslibs-1.2.2.dist-info/METADATA,sha256=RmEtkjK5ltj-1ALsBSzO2sO9eq6HdCQmeuoQeIWycO8,1236
37
- pvxslibs-1.2.2.dist-info/WHEEL,sha256=jrOhEbqKwvzRFSJcbYXlJCyVkgVdHg4_7__YHrdTUfw,102
38
- pvxslibs-1.2.2.dist-info/top_level.txt,sha256=RixlMjBFoSBZhAgzdvurnG0N681VoNV0ikf00-HgXFM,9
39
- pvxslibs-1.2.2.dist-info/RECORD,,