obby::operation< Document > Class Template Reference

#include <operation.hpp>

Inheritance diagram for obby::operation< Document >:

obby::basic_insert_operation< Document, String > obby::basic_insert_operation< Document, obby::text > obby::basic_insert_operation< Document, std::string > obby::delete_operation< Document > obby::no_operation< Document > obby::split_operation< Document > obby::reversible_insert_operation< Document > obby::insert_operation< Document > List of all members.

Public Types

typedef Document document_type

Public Member Functions

virtual operationclone () const=0
virtual operationreverse (const document_type &doc) const =0
virtual void apply (document_type &doc, const user *author) const=0
virtual operationtransform (const operation &base_op) const =0
virtual operationtransform_insert (position pos, const std::string &text) const=0
virtual operationtransform_delete (position pos, position len) const=0
virtual void append_packet (net6::packet &pack) const=0

Static Public Member Functions

static std::auto_ptr< operationfrom_packet (const net6::packet &pack, unsigned int &index, const user_table &user_table)

Detailed Description

template<typename Document>
class obby::operation< Document >

An operation describes a change in the document.

Definition at line 33 of file operation.hpp.


Member Typedef Documentation

template<typename Document>
typedef Document obby::operation< Document >::document_type

Reimplemented in obby::delete_operation< Document >, obby::basic_insert_operation< Document, String >, obby::insert_operation< Document >, obby::reversible_insert_operation< Document >, obby::no_operation< Document >, obby::split_operation< Document >, obby::basic_insert_operation< Document, obby::text >, and obby::basic_insert_operation< Document, std::string >.

Definition at line 36 of file operation.hpp.


Member Function Documentation

template<typename Document>
virtual operation* obby::operation< Document >::clone (  )  const [pure virtual]

Creates a copy of this operation.

Implemented in obby::delete_operation< Document >, obby::basic_insert_operation< Document, String >, obby::no_operation< Document >, obby::split_operation< Document >, obby::basic_insert_operation< Document, obby::text >, and obby::basic_insert_operation< Document, std::string >.

Referenced by obby::jupiter_algorithm< Document >::operation_storage::reset_operation(), obby::no_operation< Document >::transform(), and obby::jupiter_algorithm< Document >::transform().

template<typename Document>
virtual operation* obby::operation< Document >::reverse ( const document_type doc  )  const [pure virtual]

Creates the reverse operation of this one.

Parameters:
doc Document to receive additional information from.

template<typename Document>
virtual void obby::operation< Document >::apply ( document_type doc,
const user author 
) const [pure virtual]

Applies this operation to a document.

Parameters:
doc Document to apply this operation to.
author User who performed this operation.

Referenced by obby::jupiter_server< Document >::local_op(), and obby::jupiter_client< Document >::local_op().

template<typename Document>
virtual operation* obby::operation< Document >::transform ( const operation< Document > &  base_op  )  const [pure virtual]

Transforms base_op against this operation.

template<typename Document>
virtual operation* obby::operation< Document >::transform_insert ( position  pos,
const std::string &  text 
) const [pure virtual]

Includes the effect of the given insertion into this operation.

Implemented in obby::delete_operation< Document >, obby::basic_insert_operation< Document, String >, obby::no_operation< Document >, obby::split_operation< Document >, obby::basic_insert_operation< Document, obby::text >, and obby::basic_insert_operation< Document, std::string >.

Referenced by obby::basic_insert_operation< Document, String >::transform().

template<typename Document>
virtual operation* obby::operation< Document >::transform_delete ( position  pos,
position  len 
) const [pure virtual]

Includes the effect of the given deletion into this operation.

Implemented in obby::delete_operation< Document >, obby::basic_insert_operation< Document, String >, obby::no_operation< Document >, obby::split_operation< Document >, obby::basic_insert_operation< Document, obby::text >, and obby::basic_insert_operation< Document, std::string >.

Referenced by obby::delete_operation< Document >::transform().

template<typename Document>
virtual void obby::operation< Document >::append_packet ( net6::packet &  pack  )  const [pure virtual]

Appends this operation to the given packet.

Implemented in obby::delete_operation< Document >, obby::insert_operation< Document >, obby::reversible_insert_operation< Document >, obby::no_operation< Document >, and obby::split_operation< Document >.

template<typename Document>
std::auto_ptr< operation< Document > > obby::operation< Document >::from_packet ( const net6::packet &  pack,
unsigned int &  index,
const user_table user_table 
) [static]

Reads an operation from the given packet.

Parameters:
pack Packet to read from.
index From which parameter to read at.
user_table User table were to read potential user information from.

Definition at line 101 of file operation.hpp.

Referenced by obby::record< Document >::record().


The documentation for this class was generated from the following file:
Generated on Fri Jan 11 10:01:33 2008 for obby by  doxygen 1.5.1