tree 3bd68a009c927a83ce98c35c095fc699b477eaa7
parent 0dd28d95d1a490cf7cf8a640198dde6f4a8a0340
author Mitch Rudominer <rudominer@google.com> 1502839287 -0700
committer Mitch Rudominer <rudominer@google.com> 1502840011 -0700

Adds size tracking functionality to EnvelopeMaker.

We add to EnvelopeMaker:

- A size() accessor that returns the number of bytes of Observations
currently in the Envelope.

- A status enum for the return value of AddObservation(). Previously
AddObservation() was a void function.

- Two optional parameters to the constructor: max_bytes_each_observation
and max_num_bytes. If the first is set then AddObservation() will return
kObservationTooBig if the Observation being added has size larger
than |max_bytes_each_observation|. If the second is set then
AddObservation() will return kEnvelopeFull if the Observation
being added is not too big but the additional observation would
push the total size of the Envelope above
|max_num_bytes|.

I intend to use this functionality in the implementation of the
ShippingManager. The ShippingManager needs to make sure that
(a) It does not allow its in-memory cache of unsent Observations
to get too big for device memory.
(b) It does not allow any single Envelope get too big to be sent
in a single RPC.
(c) It does not allow any single Observation to be added to an
Envelope if that Observation by itself is too big to be sent
in a single RPC.

Change-Id: If0b78545d0659e9a59ca72638e7531bedf7e7685
