int ReplicateInfoMessage::parse(char* data, int32_t len)
 {
   int32_t size = 0;
   if (get_int32(&data, &len, &size) == TFS_ERROR)
   {
     return TFS_ERROR;
   }
   ReplBlock item;
   uint32_t block_id = 0;
   int32_t i = 0;
   for (i = 0; i < size; ++i)
   {
     if (get_int32(&data, &len, reinterpret_cast<int32_t*> (&block_id)) == TFS_ERROR)
     {
       return TFS_ERROR;
     }
     if (get_object_copy(&data, &len, reinterpret_cast<void*> (&item), sizeof(ReplBlock)) == TFS_ERROR)
     {
       return TFS_ERROR;
     }
     replicating_map_.insert(REPL_BLOCK_MAP::value_type(block_id, item));
   }
   if (get_counter_map(&data, &len, source_ds_counter_))
   {
     return TFS_ERROR;
   }
   if (get_counter_map(&data, &len, dest_ds_counter_))
   {
     return TFS_ERROR;
   }
   return TFS_SUCCESS;
 }
 int AccessStatInfoMessage::deserialize(common::Stream& input)
 {
   int32_t iret = input.get_int32(&has_next_);
   if (common::TFS_SUCCESS == iret)
   {
     iret = get_counter_map(input, stats_);
   }
   return iret;
 }
 int AccessStatInfoMessage::parse(char* data, int32_t len)
 {
   if (get_int32(&data, &len, &has_next_) == TFS_ERROR)
   {
     return TFS_ERROR;
   }
   if (get_counter_map(&data, &len, stats_))
   {
     return TFS_ERROR;
   }
   return TFS_SUCCESS;
 }