EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Size encoding
From: Bruno Martins <[email protected]>
To: [email protected]
Date: Tue, 15 May 2018 09:11:33 -0400
Hi,

I was taking a look at how messages are de/serialized by pvData and pvAccess and I think there is an inconsistency between the spec and the implementation regarding how sizes are encoded.

The spec says, basically [1]:

If size < 2^8-1, encode byte directly
If size < 2^31-1, encode -1 as byte and then size as signed 32-bit integer
If size < 2^63-1, encode -1 as byte, then a positive 32-bit int (which value? -1?), then size as a signed 64-bit integer.

The implementation (C++) does [2]:

If size == -1, encode -1 as byte (what is this used for?)
If size < 2^8 - 2, encode size directly as byte
Else encode -2 as byte, size as signed 32-bit integer

Replies:
Re: Size encoding Ralph Lange

Navigate by Date:
Prev: Jenkins build is back to normal : epics-base-3.16-win64 #213 APS Jenkins
Next: Re: Size encoding Ralph Lange
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Jenkins build is back to normal : epics-base-3.16-win64 #213 APS Jenkins
Next: Re: Size encoding Ralph Lange
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 15 May 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·