Just following up so that when I’ve forgotten how to do it ...

This works

#define VTK_WRAPPING_CXX
#include "vtkClientServerStream.h"

...


//  void SetSelectedGIds(int n, const int *Ids);
  void SetSelectedGIds(int N, int Ids[]);
//BTX
  void SetSelectedGIds(int N, vtkClientServerStreamDataArg<int> &temp0);
//ETX

And in the cxx, use the vtkClientServerStreamDataArg operator () to get
the T* pointer.

Then in the client GUI

vtkClientServerStream::Array array =
  {
    vtkClientServerStream::int32_array,
    static_cast<vtkTypeUInt32>(numValues),
    
static_cast<vtkTypeUInt32>(sizeof(vtkClientServerStream::int32_value)*numVa
lues),
    (int*)(data)
  };


  vtkClientServerStream stream;
  stream << vtkClientServerStream::Invoke
    << VTKOBJECT(proxy)
    << "SetSelectedGIds"
    << numValues
    << array;
  stream << vtkClientServerStream::End;

This correctly inserts the array and the type,size,data vars so that the
server reads them as expected.

I’m not happy about the fact that we have to spoof the wrapper generators,
but at least I don’t need to modify the ClientServerStreamArg<>
implementation.



JB

_______________________________________________
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

Reply via email to