package im.actor.core.modules.groups.router; import java.util.List; import im.actor.core.api.ApiGroup; import im.actor.core.api.ApiGroupOutPeer; import im.actor.core.modules.ModuleContext; import im.actor.core.modules.groups.router.entity.RouterApplyGroups; import im.actor.core.modules.groups.router.entity.RouterFetchMissingGroups; import im.actor.core.modules.groups.router.entity.RouterGroupUpdate; import im.actor.core.modules.groups.router.entity.RouterLoadFullGroup; import im.actor.core.network.parser.Update; import im.actor.runtime.actors.ActorInterface; import im.actor.runtime.actors.messages.Void; import im.actor.runtime.promise.Promise; import static im.actor.runtime.actors.ActorSystem.system; public class GroupRouterInt extends ActorInterface { public GroupRouterInt(ModuleContext context) { setDest(system().actorOf("groups/router", () -> new GroupRouter(context))); } public Promise<Void> applyGroups(List<ApiGroup> groups) { return ask(new RouterApplyGroups(groups)); } public Promise<List<ApiGroupOutPeer>> fetchPendingGroups(List<ApiGroupOutPeer> peers) { return ask(new RouterFetchMissingGroups(peers)); } public Promise<Void> onUpdate(Update update) { return ask(new RouterGroupUpdate(update)); } public void onFullGroupNeeded(int gid) { send(new RouterLoadFullGroup(gid)); } }