/* This file is part of the db4o object database http://www.db4o.com Copyright (C) 2004 - 2011 Versant Corporation http://www.versant.com db4o is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation. db4o is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */ package com.db4o.cs.internal.messages; import com.db4o.*; import com.db4o.cs.internal.*; import com.db4o.internal.*; public class MWriteBatchedMessages extends MsgD implements ServerSideMessage { public final void processAtServer() { ServerMessageDispatcher dispatcher = (ServerMessageDispatcher) messageDispatcher(); int count = readInt(); Transaction ta = transaction(); for (int i = 0; i < count; i++) { StatefulBuffer writer = _payLoad.readStatefulBuffer(); int messageId = writer.readInt(); Msg message = Msg.getMessage(messageId); Msg clonedMessage = message.publicClone(); clonedMessage.setMessageDispatcher(messageDispatcher()); clonedMessage.setTransaction(ta); if (clonedMessage instanceof MsgD) { MsgD msgd = (MsgD) clonedMessage; msgd.payLoad(writer); if (msgd.payLoad() != null) { msgd.payLoad().incrementOffset(Const4.INT_LENGTH); Transaction t = checkParentTransaction(ta, msgd.payLoad()); msgd.setTransaction(t); if (Debug4.messages) { System.out.println(msgd + " dispatched at " + ta.container()); } dispatcher.processMessage(msgd); } } else { if (Debug4.messages) { System.out.println(clonedMessage + " dispatched at " + ta.container()); } dispatcher.processMessage(clonedMessage); } } } }