16#include "msgio/request_p.h"
18#include <gwenhywfar/error.h>
19#include <gwenhywfar/misc.h>
62 return rq?rq->requestType:0;
77 return rq?rq->requestMsg:
NULL;
94 return rq?rq->endpoint:
NULL;
114 return rq?rq->requestMsgId:0;
129 return rq?rq->msgList:
NULL;
144 if (rq->msgList==
NULL)
154 return rq?rq->createdAt:
NULL;
171 return rq?rq->expiresAt:
NULL;
204 if (rq && rq->handleResponseFn)
205 return (rq->handleResponseFn)(rq, msg);
213 if (rq && rq->subRequestFinishedFn)
214 rq->subRequestFinishedFn(rq, subRq, reason);
221 if (rq && rq->abortFn) {
222 rq->abortFn(rq, reason);
229 rqParent=GWEN_MsgRequest_Tree2_GetParent(rq);
243 oldFn=rq->handleResponseFn;
244 rq->handleResponseFn=f;
258 oldFn=rq->subRequestFinishedFn;
259 rq->subRequestFinishedFn=f;
287 return rq?rq->privateData:
NULL;
302 return rq?rq->result:0;
317 return rq?rq->state:0;
340 rq=GWEN_MsgRequest_Tree2_GetFirstChild(rootRq);
342 if (rq->endpoint==ep && rq->requestMsgId==refMsgId)
344 rq=GWEN_MsgRequest_Tree2_GetBelow(rq);
void GWEN_MsgEndpoint_Attach(GWEN_MSG_ENDPOINT *ep)
void GWEN_MsgEndpoint_free(GWEN_MSG_ENDPOINT *ep)
struct GWEN_MSG_ENDPOINT GWEN_MSG_ENDPOINT
Object which can send and receive messages (base class).
#define GWEN_INHERIT_FUNCTIONS(t)
#define GWEN_INHERIT_INIT(t, element)
#define GWEN_INHERIT_FINI(t, element)
GWEN_MSG * GWEN_Msg_List_First(const GWEN_MSG_LIST *l)
GWEN_MSG_LIST * GWEN_Msg_List_new()
void GWEN_Msg_List_free(GWEN_MSG_LIST *l)
void GWEN_Msg_List_Add(GWEN_MSG *element, GWEN_MSG_LIST *list)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
void GWEN_Msg_free(GWEN_MSG *msg)
void GWEN_MsgRequest_SetResult(GWEN_MSG_REQUEST *rq, int result)
const GWEN_TIMESTAMP * GWEN_MsgRequest_GetCreatedAt(const GWEN_MSG_REQUEST *rq)
void GWEN_MsgRequest_AddMsgToList(GWEN_MSG_REQUEST *rq, GWEN_MSG *msg)
GWEN_MSG_REQUEST * GWEN_MsgRequest_new()
void GWEN_MsgRequest_SetExpiresAt(GWEN_MSG_REQUEST *rq, GWEN_TIMESTAMP *ts)
void GWEN_MsgRequest_Abort(GWEN_MSG_REQUEST *rq, int reason)
void GWEN_MsgRequest_SetRequestType(GWEN_MSG_REQUEST *rq, int t)
void GWEN_MsgRequest_SetPrivateData(GWEN_MSG_REQUEST *rq, void *p)
GWEN_MSG_REQUEST_SUBREQUESTFINISHED_FN GWEN_MsgRequest_SetSubRequestFinishedFn(GWEN_MSG_REQUEST *rq, GWEN_MSG_REQUEST_SUBREQUESTFINISHED_FN f)
void GWEN_MsgRequest_SetRequestMsg(GWEN_MSG_REQUEST *rq, GWEN_MSG *msg)
void * GWEN_MsgRequest_GetPrivateData(const GWEN_MSG_REQUEST *rq)
GWEN_MSG_ENDPOINT * GWEN_MsgRequest_GetEndpoint(const GWEN_MSG_REQUEST *rq)
void GWEN_MsgRequest_SubRequestFinished(GWEN_MSG_REQUEST *rq, GWEN_MSG_REQUEST *subRq, int reason)
GWEN_MSG * GWEN_MsgRequest_GetFirstMsgFromList(const GWEN_MSG_REQUEST *rq)
uint32_t GWEN_MsgRequest_GetRequestMsgId(const GWEN_MSG_REQUEST *rq)
void GWEN_MsgRequest_SetState(GWEN_MSG_REQUEST *rq, int i)
void GWEN_MsgRequest_SetTimestamps(GWEN_MSG_REQUEST *rq, int expiresInSecs)
GWEN_MSG_REQUEST_HANDLERESPONSE_FN GWEN_MsgRequest_SetHandleResponseFn(GWEN_MSG_REQUEST *rq, GWEN_MSG_REQUEST_HANDLERESPONSE_FN f)
void GWEN_MsgRequest_SetEndpoint(GWEN_MSG_REQUEST *rq, GWEN_MSG_ENDPOINT *ep)
void GWEN_MsgRequest_SetRequestMsgId(GWEN_MSG_REQUEST *rq, uint32_t id)
int GWEN_MsgRequest_GetResult(const GWEN_MSG_REQUEST *rq)
int GWEN_MsgRequest_GetRequestType(const GWEN_MSG_REQUEST *rq)
void GWEN_MsgRequest_SetCreatedAt(GWEN_MSG_REQUEST *rq, GWEN_TIMESTAMP *ts)
const GWEN_TIMESTAMP * GWEN_MsgRequest_GetExpiresAt(const GWEN_MSG_REQUEST *rq)
int GWEN_MsgRequest_HandleResponse(GWEN_MSG_REQUEST *rq, GWEN_MSG *msg)
void GWEN_MsgRequest_free(GWEN_MSG_REQUEST *rq)
int GWEN_MsgRequest_GetState(const GWEN_MSG_REQUEST *rq)
GWEN_MSG_REQUEST * GWEN_MsgRequest_Tree2_FindByEndpointAndMsgId(GWEN_MSG_REQUEST *rootRq, GWEN_MSG_ENDPOINT *ep, uint32_t refMsgId)
GWEN_MSG_REQUEST_ABORT_FN GWEN_MsgRequest_SetAbortFn(GWEN_MSG_REQUEST *rq, GWEN_MSG_REQUEST_ABORT_FN f)
GWEN_MSG_LIST * GWEN_MsgRequest_GetMsgList(const GWEN_MSG_REQUEST *rq)
GWEN_MSG * GWEN_MsgRequest_GetRequestMsg(const GWEN_MSG_REQUEST *rq)
void(* GWEN_MSG_REQUEST_SUBREQUESTFINISHED_FN)(GWEN_MSG_REQUEST *rq, GWEN_MSG_REQUEST *subRq, int reason)
#define GWEN_MSG_REQUEST_STATE_DONE
#define GWEN_MSG_REQUEST_REASON_ABORTED
int(* GWEN_MSG_REQUEST_HANDLERESPONSE_FN)(GWEN_MSG_REQUEST *rq, GWEN_MSG *msg)
#define GWEN_MSG_REQUEST_RESULT_NOT_HANDLED
struct GWEN_MSG_REQUEST GWEN_MSG_REQUEST
void(* GWEN_MSG_REQUEST_ABORT_FN)(GWEN_MSG_REQUEST *rq, int reason)
GWEN_TIMESTAMP * GWEN_Timestamp_dup(const GWEN_TIMESTAMP *tstampSrc)
void GWEN_Timestamp_AddSeconds(GWEN_TIMESTAMP *tstamp, int seconds)
void GWEN_Timestamp_free(GWEN_TIMESTAMP *tstamp)
GWEN_TIMESTAMP * GWEN_Timestamp_NowInLocalTime()
struct GWEN_TIMESTAMP GWEN_TIMESTAMP
#define GWEN_TREE2_FUNCTIONS(t, pr)
#define GWEN_TREE2_FINI(t, element, pr)
#define GWEN_TREE2_INIT(t, element, pr)