add ReadWithCallback.

* ReadWithCallback can be used to plug custom deserialization
  logic.
3 files changed