/****************************************************************************
 * This file is part of the project Gwenhywfar.
 * Gwenhywfar (c) by 2023 Martin Preuss, all rights reserved.
 *
 * The license for this file can be found in the file COPYING which you
 * should have received along with this file.
 ****************************************************************************/

#ifndef AQH_MSGREQUEST_P_H
#define AQH_MSGREQUEST_P_H

#include "./msgrequest.h"



struct AQH_MSG_REQUEST {
  GWEN_INHERIT_ELEMENT(AQH_MSG_REQUEST)
  GWEN_TREE2_ELEMENT(AQH_MSG_REQUEST)

  int requestType;
  AQH_MESSAGE *requestMsg;      /* msg this request is based on */
  AQH_OBJECT *endpoint;         /* source/dest endpoint for this request */
  uint32_t requestMsgId;

  AQH_MESSAGE_LIST *msgList;

  GWEN_TIMESTAMP *createdAt;
  GWEN_TIMESTAMP *expiresAt;

  AQH_MSG_REQUEST_HANDLERESPONSE_FN handleResponseFn;
  AQH_MSG_REQUEST_SUBREQUESTFINISHED_FN subRequestFinishedFn;
  AQH_MSG_REQUEST_ABORT_FN abortFn;

  void *privateData;

  int state;
  int result;
};





#endif

