/*=========================================================================

  Program:   ParaView
  Module:    ParaViewCore

  Copyright (c) Kitware, Inc.
  All rights reserved.
  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/

The ParaViewCore directory aims to gather all the core components of ParaView.
Those components are divided in several groups.

--------------------
Common
--------------------

The Common directory represent the basic package that provide classes that
may be used by any other package. It provides classes for XML management,
and ParaView specific command line arguments, test utility and interpreter
initializer.
Common should contain the very core classes such as the Interpreter and
related classes that are needed by VTKExtensions. These have nothing to do
with ParaView or ParaView client-server per-say. The only things that this kit
can depend on are VTK and the Interpreter.

--------------------
ClientServerCore
--------------------

The ClientServerCore directory provides all the VTK classes that build
and define all the infrastructure of ParaView that will be used on the
client and server side. In this package the abstract session is defined
as well as some utility networking and plugin classes. It also contains
a set of specific representation that are used on both the client and server
side.
ClientServerCore contains classes essential for client-server mechanisms in
ParaView. This also includes additional extensions to VTK that depend on
ProcessModule or sessions.

--------------------
ServerManager
--------------------

The ServerManager directory provide all the Proxy abstraction that reside
on the client side. Proxies provide a unique API to manipulate and handle
objects that reside on the processing side which can either be local or
remote. The ServerManager classes should be prefixed by vtkSM.
The main class of that package is the vtkSMProxyManager that allow the user
to create and retrieve proxies.

--------------------
ServerImplementation
--------------------

The ServerImplementation directory contain the code that will call the real
method of the underneath VTK objects. The classes in that directory should be
prefixed by vtkSI. A simple way to explain that package is to see it as a
mirror of the ServerManager one with its vtkSM class but this time on the side
where objects are really computing something. Those objects are not
necesseraly on the server side, just where the processing should occur.

--------------------
VTKExtensions
--------------------

The VTKExtensions directory provide VTK classes that may move to VTK at some
points. VTKExtensions should contain classes that extend VTK. This can only
depend on VTK and Common.

--------------------
Testing
--------------------

Allow to gather testing sub-directory of each module inside a simplified
CMakeList.txt file.
