54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
/****************************************************************************
|
|
* This file is part of the project AqHome.
|
|
* AqHome (c) by 2025 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.
|
|
****************************************************************************/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include <config.h>
|
|
#endif
|
|
|
|
#include "./ipc_client.h"
|
|
|
|
#include <aqhome/ipc2/ipc_msgreader.h>
|
|
#include <aqhome/ipc2/msgwriter.h>
|
|
#include <aqhome/events2/fdobject.h>
|
|
|
|
#include <gwenhywfar/debug.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------------------------------------------
|
|
* code
|
|
* ------------------------------------------------------------------------------------------------
|
|
*/
|
|
|
|
AQH_OBJECT *AQH_IpcClientObject_new(AQH_EVENT_LOOP *eventLoop, int fd)
|
|
{
|
|
int fdCopy;
|
|
AQH_OBJECT *fdReader;
|
|
AQH_OBJECT *fdWriter;
|
|
AQH_OBJECT *msgReader;
|
|
AQH_OBJECT *msgWriter;
|
|
AQH_OBJECT *endpoint;
|
|
|
|
fdCopy=dup(fd);
|
|
|
|
fdReader=AQH_FdObject_new(eventLoop, fd, AQH_FDOBJECT_FDMODE_READ);
|
|
msgReader=AQH_IpcMsgReader_new(eventLoop, fdReader);
|
|
AQH_Object_Enable(msgReader);
|
|
|
|
fdWriter=AQH_FdObject_new(eventLoop, fdCopy, AQH_FDOBJECT_FDMODE_WRITE);
|
|
msgWriter=AQH_MsgWriter_new(eventLoop, fdWriter);
|
|
|
|
endpoint=AQH_Endpoint_new(eventLoop, msgReader, msgWriter);
|
|
return endpoint;
|
|
}
|
|
|
|
|
|
|