[Paraview] server-side InvokeEvent(...) doesn't call client-side observer

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Mon Nov 27 15:09:54 EST 2017


Catalyst live-session is managed this custom engineering from both the
client and the server side. Hence it's not a mechanism that arbitrary
filters can use to communicate events from server to client. If you're
interested in how Catalyst live sessions manages this, start by
looking at vtkSMLiveInsituLinkProxy and vtkLiveInsituLink classes.
Following the code path for NEXT_TIMESTEP_AVAILABLE might be helpeful.

Utkarsh

On Thu, Nov 23, 2017 at 12:57 PM, Kolja Petersen
<petersenkolja at gmail.com> wrote:
> Can anybody answer my question?
> When Catalyst receives the next timestep update from some simulation every
> few seconds or minutes, it sends its data to the pvserver process. The
> pvserver somehow notifies the Paraview client, which will display the new
> data.
> If Utkarsh's comment is correct that no events can be forwarded from server
> to client, then how does Paraview know that it should display the next
> timestep?
>
> I need to implement a very similar use case, for which a better
> understanding of the communication between the Catalyst session, the
> pvserver and the Paraview client is of high importance.
> Thanks
> Kolja
>
> On Wed, Nov 22, 2017 at 7:54 PM, Kolja Petersen <petersenkolja at gmail.com>
> wrote:
>>
>> Oh, well, but how is Catalyst forwarding new time step information from
>> server to client?
>> Time step updates can occur at any time. Which event mechanism notifies
>> the client?
>> Thanks
>> Kolja
>>
>> On Wed, Nov 22, 2017 at 6:57 PM, Utkarsh Ayachit
>> <utkarsh.ayachit at kitware.com> wrote:
>>>
>>> This is not a use-case supported in ParaView. We don't forward events
>>> from server to client.
>>>
>>> On Wed, Nov 22, 2017 at 12:53 PM, Kolja Petersen
>>> <petersenkolja at gmail.com> wrote:
>>>>
>>>> Hello,
>>>> I would like to invoke a callback on a proxy in a pvpython session from
>>>> a server-side method.
>>>>
>>>> In my server-side class "vtkCustom" I have a method
>>>> void vtkCustom::SetData(int i){
>>>>   ...
>>>>   this->InvokeEvent(1999,NULL);
>>>>   ...
>>>> }
>>>>
>>>>
>>>> On the client side, I create a proxy to a vtkCustom object, register an
>>>> observer and set the "Data" property, which should invoke eventid=1999:
>>>> ...
>>>> custom=pxm.NewProxy("myextensions","Custom")
>>>> pxm.RegisterProxy("myextensions","Custom",custom)
>>>>
>>>> def fun(obj,event):
>>>>   print "CALLBACK",obj,event
>>>>
>>>> custom.AddObserver(1999,fun)
>>>> vtk.vtkSMPropertyHelper(custom.GetProperty("Data")).Set(42)
>>>> ...
>>>>
>>>> The observer function "fun" on the client is never invoked, although the
>>>> server-side invokes that event. I'm misunderstanding some concept of
>>>> Paraviews event mechanism for sure. Can you help me correct my steps?
>>>> Thanks
>>>> Kolja
>>>>
>>>>
>>>> Virenfrei. www.avast.com
>>>>
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Please keep messages on-topic and check the ParaView Wiki at:
>>>> http://paraview.org/Wiki/ParaView
>>>>
>>>> Search the list archives at: http://markmail.org/search/?q=ParaView
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://public.kitware.com/mailman/listinfo/paraview
>>>>
>>>
>>
>


More information about the ParaView mailing list