After going through the EMA documentation, I am not sure if EMA is providing any mechanism to
maintain a cached image and applying updates to it. 
We used to do it using only
a few lines of code in RFA MarketData. We are subscribing to market price service.  In RFA MarketData code we maintain a cached
full image in a TibMsg object.
TibMsg m_RawImage;
We populate the TibMsg object when we get an initial image
from the RFA callback using the following code:
void ProcessItemImage(const MarketDataItemEvent& event)
{
  const rfa::common::Buffer& buffer = event.getBuffer();
  switch (event.getDataFormat())
    {
      case MarketDataEnums::Marketfeed:
        if (!buffer.isEmpty())
        {
          TibMsg msg;
          TibErr err = msg.UnPack((char*)buffer.c_buf(), buffer.size());
          assert(err.code == TIBMSG_OK);
          CopyTibMsg(m_RawImage, msg);
.
.
.
When we get a update message callback from RFA we apply the update
to the cached full image using the following code:
void ProcessItemUpdate(const MarketDataItemEvent& event)
{
  const rfa::common::Buffer& buffer = event.getBuffer();
  switch (event.getDataFormat())
  {
    case MarketDataEnums::Marketfeed:
      if (!buffer.isEmpty())
      {
        TibMsg msg;
        TibErr err = msg.UnPack((char*)buffer.c_buf(), buffer.size());
        assert(err.code == TIBMSG_OK);
        if (err.code != TIBMSG_OK)
          return;
        UpdateTibMsg(m_RawImage, msg);
.
.
}
bool UpdateTibMsg(TibMsg& image, TibMsg& delta)
{
  TibField field;
  bool ret = false;
  for (field.First(δ); field.status==TIBMSG_OK; field.Next())
  {
    TibErr err = image.Update(&field);
    ret |= (err.code == TIBMSG_OK);
  }
  return ret;
}
What is the equivalent thing to do in EMA? What object
can we cache? 
The documentation clearly says this:
Warning! The Data class and all classes that inherit from it are designed as temporary
and short-lived objects. For this reason, do not use them as storage
or caching devices.
Do we need to implement our own classes for caching and
applying updates?