/* * Copyright (C) 2015 Actor LLC. <https://actor.im> */ package im.actor.core.modules.messaging.actions.entity; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import im.actor.runtime.bser.Bser; import im.actor.runtime.bser.BserObject; import im.actor.runtime.bser.BserValues; import im.actor.runtime.bser.BserWriter; import im.actor.core.entity.Peer; public class DeleteStorage extends BserObject { public static DeleteStorage fromBytes(byte[] data) throws IOException { return Bser.parse(new DeleteStorage(), data); } private HashMap<Peer, Delete> pendingDeletions = new HashMap<Peer, Delete>(); public HashMap<Peer, Delete> getPendingDeletions() { return pendingDeletions; } @Override public void parse(BserValues values) throws IOException { pendingDeletions.clear(); int count = values.getRepeatedCount(1); List<Delete> tmp = new ArrayList<Delete>(); for (int i = 0; i < count; i++) { tmp.add(new Delete()); } for (Delete d : values.getRepeatedObj(1, tmp)) { pendingDeletions.put(d.getPeer(), d); } } @Override public void serialize(BserWriter writer) throws IOException { writer.writeRepeatedObj(1, new ArrayList<BserObject>(pendingDeletions.values())); } }