root/include/crm/common/ipc_schedulerd.h

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

INCLUDED FROM


   1 /*
   2  * Copyright 2021-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_COMMON_IPC_SCHEDULERD__H
  11 #define PCMK__CRM_COMMON_IPC_SCHEDULERD__H
  12 
  13 #include <crm/common/ipc.h>  // pcmk_ipc_api_t
  14 
  15 #ifdef __cplusplus
  16 extern "C" {
  17 #endif
  18 
  19 /**
  20  * \file
  21  * \brief IPC commands for Schedulerd
  22  *
  23  * \ingroup core
  24  */
  25 
  26 
  27 //! Possible types of schedulerd replies
  28 enum pcmk_schedulerd_api_reply {
  29     pcmk_schedulerd_reply_unknown,
  30     pcmk_schedulerd_reply_graph,
  31 };
  32 
  33 /*!
  34  * Schedulerd reply passed to event callback
  35  */
  36 typedef struct {
  37     enum pcmk_schedulerd_api_reply reply_type;
  38 
  39     union {
  40         // pcmk__schedulerd_reply_graph
  41         struct {
  42             xmlNode *tgraph;
  43             const char *reference;
  44             const char *input;
  45         } graph;
  46     } data;
  47 } pcmk_schedulerd_api_reply_t;
  48 
  49 /*!
  50  * \brief Make an IPC request to the scheduler for the transition graph
  51  *
  52  * \param[in,out] api  IPC API connection
  53  * \param[in]     cib  The CIB to create a transition graph for
  54  * \param[out]    ref  The reference ID a response will have
  55  *
  56  * \return Standard Pacemaker return code
  57  */
  58 int pcmk_schedulerd_api_graph(pcmk_ipc_api_t *api, xmlNode *cib, char **ref);
  59 
  60 #ifdef __cplusplus
  61 }
  62 #endif
  63 
  64 #endif // PCMK__CRM_COMMON_IPC_SCHEDULERD__H

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