Re: [Evolution-hackers] Evolution-data-server 3.2 backend API question



On Mon, 2012-03-05 at 16:56 +0100, vaclav sajdl zonio net wrote:
> When I enable my calendar backend in Evolution client calendar 
> interface, the open and authenticate methods are called correctly and
> opening phase ends with e_cal_backend_notify_opened().
> 
> Then client calls get_view_cb and data-server calls "start_view"
> method of my backend. This method checks cache components for recieved
> view's time range and adds (e_data_cal_notify_objects_added())
> components to desired view. Method ends with
> e_data_cal_view_notify_complete(view, NULL).
> 
> All of that seems allright to me,

	Hi,
I agree, both seems fine, at least from the description (the actual code
can be slightly different, especially with the opening phase). The
start_view part is pretty much the same as for example for CalDAV
backend.

> but evolution client calls start_view method every 5 seconds and
> creates new EDataCalView for each cycle and adds it to my backend.
> EDataCalView instances cover the same time range and it causes that
> every sync cycle adds again calendar events to client window. 

I suppose the get_view_cb comes from e-cal-model.c in evolution, right?
Could you set a break point there, in gdb, and check what failed there
(error->message), because it seems there is failing something. You can
also run evolution from console, whether it'll claim anything there.

The easiest way to check out this would be to share your code, the one
involving opening phase (implementation of ECalBackend::open,
ECalBackend::authenticate_user and ECalBackend::start_view). By the way,
is you backend's parent class ECalBackend or ECalBackendSync?
	Bye,
	Milan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]