/* libobby - Network text editing library
* Copyright (C) 2005, 2006 0x539 dev group
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program 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, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "jupiter_client.hpp"
#if 0
obby::jupiter_client::jupiter_client(document& doc):
m_undo(doc), m_document(doc)
{
}
void obby::jupiter_client::client_add(const user& client)
{
m_undo.client_add(client);
}
void obby::jupiter_client::client_remove(const user& client)
{
m_undo.client_remove(client);
}
void obby::jupiter_client::local_op(const operation& op, const user* from)
{
// Apply operation locally
op.apply(m_document, from);
// Tell undo manager
m_undo.local_op(op, from);
// Generate record
std::auto_ptr<record> rec(m_algorithm.local_op(op) );
// Emit record signal
m_signal_record.emit(*rec, from);
}
void obby::jupiter_client::remote_op(const record& rec, const user* from)
{
// Transform
std::auto_ptr<operation> op(m_algorithm.remote_op(rec) );
// Apply to document
op->apply(m_document, from);
// Tell undo manager
m_undo.remote_op(*op, from);
}
void obby::jupiter_client::undo_op(const user* from)
{
// Request undo operation from undo manager
std::auto_ptr<operation> op = m_undo.undo();
// Apply operation locally
op->apply(m_document, from);
// Generate record
std::auto_ptr<record> rec(m_algorithm.local_op(*op) );
// Emit record signal
m_signal_record.emit(*rec, from);
}
obby::jupiter_client::signal_record_type
obby::jupiter_client::record_event() const
{
return m_signal_record;
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1