#ifndef _ECS_COMM_H_
#define _ECS_COMM_H_

/*============================================================================*
 *  Prototypes des fonctions de base
 *   réalisant les sorties pour l'interfacage avec le Noyau
 *============================================================================*/

/*
                      Code_Saturne version 1.3
                      ------------------------

  This file is part of the Code_Saturne Preprocessor, element of the
  Code_Saturne CFD tool.

  Copyright (C) 1999-2007 EDF S.A., France

  contact: saturne-support@edf.fr

  The Code_Saturne Preprocessor is free software; you can redistribute it
  and/or modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2 of
  the License, or (at your option) any later version.

  The Code_Saturne Preprocessor is distributed in the hope that it will be
  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with the Code_Saturne Preprocessor; if not, write to the
  Free Software Foundation, Inc.,
  51 Franklin St, Fifth Floor,
  Boston, MA  02110-1301  USA
*/


/*============================================================================*
 *                                 Visibilité
 *============================================================================*/


/*----------------------------------------------------------------------------
 *  Fichiers `include' librairie standard C
 *----------------------------------------------------------------------------*/


/*----------------------------------------------------------------------------
 *  Fichiers `include' publics  du  paquetage global "Utilitaire"
 *----------------------------------------------------------------------------*/

#include "ecs_def.h"


/*----------------------------------------------------------------------------
 *  Fichiers `include' publics  des paquetages visibles
 *----------------------------------------------------------------------------*/


/*----------------------------------------------------------------------------
 *  Fichiers `include' publics  du  paquetage courant
 *----------------------------------------------------------------------------*/

#include "ecs_comm_publ.h"


/*============================================================================
 *                       Prototypes de fonctions publiques
 *============================================================================*/


/*----------------------------------------------------------------------------
 *  Fonction qui initialise un communicateur
 *----------------------------------------------------------------------------*/

ecs_comm_t * ecs_comm__initialise
(
 const ecs_int_t        num_noeud ,         /* Numéro du noeud associé (ou 0) */
       ecs_comm_typ_t   type_comm ,         /* Type de communicateur          */
 const ecs_int_t        echo_comm           /* Echo sur sortie principale     */
) ;


/*----------------------------------------------------------------------------
 *  Fonction qui termine la communication
 *----------------------------------------------------------------------------*/

ecs_comm_t * ecs_comm__termine
(
 ecs_comm_t *           comm
) ;


/*----------------------------------------------------------------------------
 *  Fonction d'interrogation du nom d'un communicateur
 *
 *  Cette fonction renvoie un pointeur sur un nom existant, et ne crée donc
 *   pas une nouvelle chaîne de caracteres. On ne doit donc pas désallouer
 *   la chaîne pointée par cette fonction.
 *----------------------------------------------------------------------------*/

char * ecs_comm__ret_nom
(
 const ecs_comm_t *const comm
) ;


/*----------------------------------------------------------------------------
 * Fonction qui écrit une rubrique dans le fichier d'interface
 *
 * Descriptif d'une rubrique du fichier d'interface avec le Noyau :
 *
 * 1. numéro  de la rubrique (toujours 0 pour l'Enveloppe)
 * 2. nom     de la rubrique
 * 3. nombre          d'élements
 * 4. nom     du type d'élements
 * 5. valeurs des       élements
 *----------------------------------------------------------------------------*/

void ecs_comm__ecrit_rubrique
(
 const char        *const nom_rub     ,
 const ecs_int_t          nbr_elt_rub ,
       void        *const elt_rub     ,
       ecs_type_t         typ_elt_e   ,
 const ecs_comm_t  *const comm
) ;


#endif /* _ECS_COMM_H_ */


syntax highlighted by Code2HTML, v. 0.9.1