root/include/crm/cluster.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright 2004-2024 the Pacemaker project contributors
   3  *
   4  * The version control history for this file may have further details.
   5  *
   6  * This source code is licensed under the GNU Lesser General Public License
   7  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
   8  */
   9 
  10 #ifndef PCMK__CRM_CLUSTER__H
  11 #define PCMK__CRM_CLUSTER__H
  12 
  13 #include <glib.h>               // gpointer
  14 
  15 #if SUPPORT_COROSYNC
  16 #include <corosync/cpg.h>       // cpg_callbacks_t, etc.
  17 #endif
  18 
  19 #ifdef __cplusplus
  20 extern "C" {
  21 #endif
  22 
  23 //! \internal Do not use
  24 typedef struct pcmk__cluster_private pcmk__cluster_private_t;
  25 
  26 // Implementation of pcmk_cluster_t
  27 // @COMPAT Make contents internal when we can break API backward compatibility
  28 //!@{
  29 //! \deprecated Do not use (public access will be removed in a future release)
  30 struct pcmk__cluster {
  31     /* @COMPAT Once all members are moved to pcmk__cluster_private_t, we can
  32      * make that the pcmk_cluster_t implementation and drop this struct
  33      * altogether, leaving pcmk_cluster_t as an opaque public type.
  34      */
  35     //! \internal Do not use
  36     pcmk__cluster_private_t *priv;
  37 
  38     // NOTE: sbd (as of at least 1.5.2) uses this
  39     //! \deprecated Call pcmk_cluster_set_destroy_fn() to set this
  40     void (*destroy) (gpointer);
  41 
  42 #if SUPPORT_COROSYNC
  43     // NOTE: sbd (as of at least 1.5.2) uses this
  44     /*!
  45      * \deprecated Call pcmk_cpg_set_deliver_fn() and pcmk_cpg_set_confchg_fn()
  46      *             to set these
  47      */
  48     cpg_callbacks_t cpg;
  49 #endif  // SUPPORT_COROSYNC
  50 };
  51 //!@}
  52 
  53 //! Connection to a cluster layer
  54 typedef struct pcmk__cluster pcmk_cluster_t;
  55 
  56 int pcmk_cluster_connect(pcmk_cluster_t *cluster);
  57 int pcmk_cluster_disconnect(pcmk_cluster_t *cluster);
  58 
  59 pcmk_cluster_t *pcmk_cluster_new(void);
  60 void pcmk_cluster_free(pcmk_cluster_t *cluster);
  61 
  62 int pcmk_cluster_set_destroy_fn(pcmk_cluster_t *cluster, void (*fn)(gpointer));
  63 #if SUPPORT_COROSYNC
  64 int pcmk_cpg_set_deliver_fn(pcmk_cluster_t *cluster, cpg_deliver_fn_t fn);
  65 int pcmk_cpg_set_confchg_fn(pcmk_cluster_t *cluster, cpg_confchg_fn_t fn);
  66 #endif  // SUPPORT_COROSYNC
  67 
  68 /*!
  69  * \enum pcmk_cluster_layer
  70  * \brief Types of cluster layer
  71  */
  72 enum pcmk_cluster_layer {
  73     pcmk_cluster_layer_unknown  = 1,    //!< Unknown cluster layer
  74     pcmk_cluster_layer_invalid  = 2,    //!< Invalid cluster layer
  75     pcmk_cluster_layer_corosync = 32,   //!< Corosync Cluster Engine
  76 };
  77 
  78 enum pcmk_cluster_layer pcmk_get_cluster_layer(void);
  79 const char *pcmk_cluster_layer_text(enum pcmk_cluster_layer layer);
  80 
  81 #ifdef __cplusplus
  82 }
  83 #endif
  84 
  85 #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1)
  86 #include <crm/cluster/compat.h>
  87 #endif
  88 
  89 #endif  // PCMK__CRM_CLUSTER__H

/* [previous][next][first][last][top][bottom][index][help] */