In the amqp standard, link-credit is defined as: "the current maximum legal amount that the delivery-count can be increased by". Only the receiver can set its value.
In the current proton API, we can only add to the link-credit. We cannot set it (our need is to set it to a value less than the actual link-credit).
As to why we need this, we are trying to implement an asynchronous get with timeout (by returning a std::future).
I understand that in the amqp standard, there are 2 supported modes of delivery, and async get with timeout is not mentioned:
Therefore, we're implementing it for its convenience to us (the client receives the response/exception in his thread).
Problem arises when we start having timeouts. Briefly (I can give you more details here if you want), having the ability to set the link-credit to a lower value would facilitate our lives.