<ServerManagerConfiguration>
  <ProxyGroup name="internal_writers">
    <!--
      *****************************************************************
      These are proxies used by meta-writers defined in writers.xml
      *****************************************************************
    -->
    <!-- ================================================================= -->
    <Proxy name="DataWriterBase">
      <!-- Base for non-xml data writers -->
      <Documentation>This defines the interface for legacy vtk data files
      writer.</Documentation>
      <IntVectorProperty command="SetFileType"
                         default_values="2"
                         name="FileType"
                         number_of_elements="1">
        <EnumerationDomain name="enum">
          <Entry text="Ascii"
                 value="1" />
          <Entry text="Binary"
                 value="2" />
        </EnumerationDomain>
        <Documentation>The type for the data file (i.e. ascii or
        binary).</Documentation>
      </IntVectorProperty>
      <!-- End of DataWriterBase -->
    </Proxy>
    <!-- ================================================================= -->
    <Proxy class="not-used"
           name="ParallelWriterBase">
      <Documentation>This defines the interface for the parallel
      writers.</Documentation>
      <!-- Base for parallel writers -->
      <StringVectorProperty command="SetFileName"
                            name="FileName"
                            number_of_elements="1">
        <Documentation>The name of the file to be written.</Documentation>
      </StringVectorProperty>
      <IntVectorProperty command="SetGhostLevel"
                         default_values="0"
                         name="GhostLevel"
                         number_of_elements="1">
        <IntRangeDomain min="0"
                        name="range" />
        <Documentation>The number of ghost levels to include in the output
        file(s). Note that some writers (such as ExodusIIWriter) may not
        support writing ghost levels.</Documentation>
      </IntVectorProperty>
      <SubProxy>
        <SourceProxy class="vtkCompleteArrays"
                     name="CompleteArrays"></SourceProxy>
      </SubProxy>
      <!-- End of ParallelWriterBase -->
    </Proxy>
    <!-- ================================================================= -->
    <Proxy name="FileSeriesWriter">
      <StringVectorProperty command="SetFileName"
                            name="FileName"
                            number_of_elements="1">
        <Documentation>The name of the file to be written.</Documentation>
      </StringVectorProperty>
      <IntVectorProperty command="SetWriteAllTimeSteps"
                         default_values="0"
                         label="Write all timesteps as file-series"
                         name="WriteAllTimeSteps"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>When WriteAllTimeSteps is turned ON, the writer is
        executed once for each timestep available from the
        reader.</Documentation>
      </IntVectorProperty>

      <PropertyGroup label="File Series">
        <Property name="WriteAllTimeSteps" />
      </PropertyGroup>

      <!-- End of FileSeriesWriter -->
    </Proxy>
    <!-- ================================================================= -->
    <Proxy name="ParallelFileSeriesWriter">
      <StringVectorProperty command="SetFileName"
                            name="FileName"
                            number_of_elements="1">
        <Documentation>The name of the file to be written.</Documentation>
      </StringVectorProperty>
      <IntVectorProperty command="SetWriteAllTimeSteps"
                         default_values="0"
                         label="Write all timesteps as file-series"
                         name="WriteAllTimeSteps"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>When WriteAllTimeSteps is turned ON, the writer is
        executed once for each timestep available from the
        reader.</Documentation>
      </IntVectorProperty>
      <SubProxy>
        <!-- No harm if use vtkCompleteArrays even in serial mode so, we are
             letting it be -->
        <SourceProxy class="vtkCompleteArrays"
                     name="CompleteArrays"></SourceProxy>
      </SubProxy>

      <PropertyGroup label="File Series">
        <Property name="WriteAllTimeSteps" />
      </PropertyGroup>

      <!-- End of ParallelFileSeriesWriter -->
    </Proxy>
    <!-- ================================================================= -->
    <Proxy base_proxygroup="internal_writers"
           base_proxyname="DataWriterBase"
           class="vtkSTLWriter"
           name="STLWriter">
      <Documentation short_help="Write stereo lithography files.">
      </Documentation>
      <!-- End of STLWriter -->
    </Proxy>
    <!-- ================================================================= -->
    <Proxy base_proxygroup="internal_writers"
           base_proxyname="DataWriterBase"
           class="vtkPVPLYWriter"
           name="PLYWriter">
      <Documentation short_help="Write polygonal data in Stanford University PLY format.">
      </Documentation>
      <InputProperty name="DummyInput" panel_visibility="never">
        <InputArrayDomain attribute_type="any" name="input_array" />
      </InputProperty>

      <IntVectorProperty name="EnableColoring"
                         command="SetEnableColoring"
                         number_of_elements="1"
                         default_values="0">
        <BooleanDomain name="bool" />
        <Documentation>
          Specify whether color information should be saved in the PLY file.
          If enable, the data source's coloring state i.e. the array to color with and the transfer function
          from the active view will be used.
        </Documentation>
      </IntVectorProperty>
      <StringVectorProperty command="SetInputArrayToProcess"
                            element_types="0 0 0 0 2"
                            name="ColorArrayName"
                            no_custom_default="1"
                            number_of_elements="5">
        <Documentation>
          The array that will be used for saving color information when
          **Enable Coloring** is ON.
        </Documentation>
        <ArrayListDomain name="array_list">
          <RequiredProperties>
            <Property function="Input" name="DummyInput" />
          </RequiredProperties>
        </ArrayListDomain>
        <FieldDataDomain name="field_list">
          <RequiredProperties>
            <Property function="Input" name="DummyInput" />
          </RequiredProperties>
        </FieldDataDomain>
        <Hints>
          <PropertyWidgetDecorator type="GenericDecorator"
                                   mode="visibility"
                                   property="EnableColoring"
                                   value="-1" />
          <!-- I am keeping this widget always hidden since I don't want the
               user to be able to change the array in the Writer's dialog.
               User should change the data's coloring properties in the active view
               instead -->
        </Hints>
      </StringVectorProperty>
      <ProxyProperty command="SetLookupTable" name="LookupTable" >
        <Documentation>Set the lookup table to use for scalar
        mapping.</Documentation>
        <ProxyGroupDomain name="groups">
          <Group name="lookup_tables" />
        </ProxyGroupDomain>
      </ProxyProperty>
      <!-- End of PLYWriter -->
    </Proxy>
    <!-- ================================================================= -->
    <Proxy base_proxygroup="internal_writers"
           base_proxyname="DataWriterBase"
           class="vtkGenericDataObjectWriter"
           name="DataSetWriterCore">
      <Documentation>Internal proxy used for writing legacy vtk
      files.</Documentation>
    </Proxy>
    <!-- ================================================================= -->
    <Proxy class="vtkXMLDataSetWriter"
           name="XMLDataSetWriterCore">
      <Documentation>Internal writer for writing xml-based vtk
      files.</Documentation>
      <IntVectorProperty command="SetDataMode"
                         default_values="2"
                         name="DataMode"
                         number_of_elements="1">
        <EnumerationDomain name="enum">
          <Entry text="Ascii"
                 value="0" />
          <Entry text="Binary"
                 value="1" />
          <Entry text="Appended"
                 value="2" />
        </EnumerationDomain>
        <Documentation>The mode uses for writing the file's data i.e. ascii,
        binary, appended binary.</Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetHeaderType"
                         default_values="64"
                         name="HeaderType"
                         number_of_elements="1">
        <EnumerationDomain name="enum">
          <Entry text="UInt32" value="32" />
          <Entry text="UInt64" value="64" />
        </EnumerationDomain>
        <Documentation>Set the binary data header word type.  The default is
        UInt32. Set to UInt64 when storing arrays requiring 64-bit indexing.
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetEncodeAppendedData"
                         default_values="0"
                         name="EncodeAppendedData"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>When EncodeAppendedData is turned ON, the writer uses
        base64 encoding when writing binary data (only if appended mode is
        selected).</Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetCompressorType"
                         default_values="0"
                         name="CompressorType"
                         number_of_elements="1">
        <EnumerationDomain name="enum">
          <Entry text="None"
                 value="0" />
          <Entry text="ZLib"
                 value="1" />
        </EnumerationDomain>
        <Documentation>The compression algorithm used to compress binary data
        (appended mode only).</Documentation>
      </IntVectorProperty>
      <!-- End of XMLDataSetWriterCore -->
    </Proxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPMultiBlockDataWriter"
                  name="XMLPMultiBlockDataWriterCore">
      <Documentation>Internal proxy used by
      XMLMultiBlockDataWriter.</Documentation>
      <!-- End of XMLPMultiBlockDataWriterCore -->
    </PWriterProxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPUniformGridAMRWriter"
                  name="XMLPUniformGridAMRWriter">
      <Documentation>
        Internal proxy used by XMLUniformGridAMRWriter
      </Documentation>
      <!-- End of XMLPUniformGridAMRWriter-->
    </PWriterProxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPPolyDataWriter"
                  name="XMLPPolyDataWriterCore">
      <Documentation>Internal writer used to write XML poly data in
      parallel.</Documentation>
    </PWriterProxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPUnstructuredGridWriter"
                  name="XMLPUnstructuredGridWriterCore">
      <Documentation>Internal writer used to write XML poly data in
      parallel.</Documentation>
    </PWriterProxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPStructuredGridWriter"
                  name="XMLPStructuredGridWriterCore">
      <Documentation>Internal writer used to write XML poly data in
      parallel.</Documentation>
    </PWriterProxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPRectilinearGridWriter"
                  name="XMLPRectilinearGridWriterCore">
      <Documentation>Writer to write rectilinear grid in a xml-based vtk data
      file. Can be used for parallel writing.</Documentation>
    </PWriterProxy>
    <!-- ================================================================= -->
    <PWriterProxy base_proxygroup="internal_writers"
                  base_proxyname="XMLDataSetWriterCore"
                  class="vtkXMLPImageDataWriter"
                  name="XMLPImageDataWriterCore"
                  parallel_only="1">
      <Documentation>Writer to write image data in a xml-based vtk data file.
      Can be used for parallel writing.</Documentation>
    </PWriterProxy>
  </ProxyGroup>
</ServerManagerConfiguration>
