22 #include <osengine/engine.h>
24 #include <libqopensync/engine.h>
26 #include <tqapplication.h>
28 #include "callbackhandler.h"
30 using namespace QSync;
32 class CallbackHandler::ConflictEvent :
public TQCustomEvent
35 ConflictEvent(
const SyncMapping& mapping )
36 : TQCustomEvent( ConflictEventType ), mMapping( mapping )
40 SyncMapping mapping()
const {
return mMapping; }
46 class CallbackHandler::ChangeEvent :
public TQCustomEvent
49 ChangeEvent(
const SyncChangeUpdate& change )
50 : TQCustomEvent( ChangeEventType ), mChange( change )
54 SyncChangeUpdate change()
const {
return mChange; }
57 SyncChangeUpdate mChange;
60 class CallbackHandler::MappingEvent :
public TQCustomEvent
63 MappingEvent(
const SyncMappingUpdate& mapping )
64 : TQCustomEvent( MappingEventType ), mMapping( mapping )
68 SyncMappingUpdate mapping()
const {
return mMapping; }
71 SyncMappingUpdate mMapping;
74 class CallbackHandler::EngineEvent :
public TQCustomEvent
77 EngineEvent(
const SyncEngineUpdate& engine )
78 : TQCustomEvent( EngineEventType ), mEngine( engine )
82 SyncEngineUpdate engine()
const {
return mEngine; }
85 SyncEngineUpdate mEngine;
88 class CallbackHandler::MemberEvent :
public TQCustomEvent
91 MemberEvent(
const SyncMemberUpdate& member )
92 : TQCustomEvent( MemberEventType ), mMember( member )
96 SyncMemberUpdate member()
const {
return mMember; }
99 SyncMemberUpdate mMember;
102 CallbackHandler::CallbackHandler()
106 CallbackHandler::~CallbackHandler()
110 void CallbackHandler::setEngine( Engine *engine )
114 osengine_set_conflict_callback( engine->mEngine, &conflict_callback,
this );
115 osengine_set_changestatus_callback( engine->mEngine, &change_callback,
this );
116 osengine_set_mappingstatus_callback( engine->mEngine, &mapping_callback,
this );
117 osengine_set_enginestatus_callback( engine->mEngine, &engine_callback,
this );
118 osengine_set_memberstatus_callback( engine->mEngine, &member_callback,
this );
121 Engine* CallbackHandler::engine()
const
126 void CallbackHandler::customEvent( TQCustomEvent *event )
128 if ( event->type() ==
static_cast<TQEvent::Type
>( ConflictEventType ) ) {
129 ConflictEvent *conflictEvent =
static_cast<ConflictEvent*
>( event );
130 emit conflict( conflictEvent->mapping() );
131 }
else if ( event->type() ==
static_cast<TQEvent::Type
>( ChangeEventType ) ) {
132 ChangeEvent *changeEvent =
static_cast<ChangeEvent*
>( event );
133 emit change( changeEvent->change() );
134 }
else if ( event->type() ==
static_cast<TQEvent::Type
>( MappingEventType ) ) {
135 MappingEvent *mappingEvent =
static_cast<MappingEvent*
>( event );
136 emit mapping( mappingEvent->mapping() );
137 }
else if ( event->type() ==
static_cast<TQEvent::Type
>( EngineEventType ) ) {
138 EngineEvent *engineEvent =
static_cast<EngineEvent*
>( event );
139 emit engine( engineEvent->engine() );
140 }
else if ( event->type() ==
static_cast<TQEvent::Type
>( MemberEventType ) ) {
141 MemberEvent *memberEvent =
static_cast<MemberEvent*
>( event );
142 emit member( memberEvent->member() );
146 void CallbackHandler::conflict_callback( OSyncEngine *engine, OSyncMapping *omapping,
void *data )
148 SyncMapping mapping( omapping, engine );
150 CallbackHandler *handler =
static_cast<CallbackHandler*
>( data );
152 TQApplication::postEvent( handler,
new ConflictEvent( mapping ) );
155 void CallbackHandler::change_callback( OSyncEngine*, OSyncChangeUpdate *update,
void *data )
157 SyncChangeUpdate change( update );
159 CallbackHandler *handler =
static_cast<CallbackHandler*
>( data );
161 TQApplication::postEvent( handler,
new ChangeEvent( change ) );
164 void CallbackHandler::mapping_callback( OSyncMappingUpdate *update,
void *data )
166 CallbackHandler *handler =
static_cast<CallbackHandler*
>( data );
168 SyncMappingUpdate mapping( update, handler->engine()->mEngine );
170 TQApplication::postEvent( handler,
new MappingEvent( mapping ) );
173 void CallbackHandler::engine_callback( OSyncEngine*, OSyncEngineUpdate *update,
void *data )
175 SyncEngineUpdate engine( update );
177 CallbackHandler *handler =
static_cast<CallbackHandler*
>( data );
179 TQApplication::postEvent( handler,
new EngineEvent( engine ) );
182 void CallbackHandler::member_callback( OSyncMemberUpdate *update,
void *data )
184 SyncMemberUpdate member( update );
186 CallbackHandler *handler =
static_cast<CallbackHandler*
>( data );
188 TQApplication::postEvent( handler,
new MemberEvent( member ) );
191 #include "callbackhandler.moc"