34using namespace std::placeholders;
57 int irc = ::pipe(pipefd);
59 throw Rexception(
"RtclAttnShuttle::<ctor>",
"pipe() failed: ", errno);
89 Tcl_SetChannelOption(
nullptr,
fShuttleChn,
"-buffersize",
"64");
90 Tcl_SetChannelOption(
nullptr,
fShuttleChn,
"-encoding",
"binary");
91 Tcl_SetChannelOption(
nullptr,
fShuttleChn,
"-translation",
"binary");
95 reinterpret_cast<ClientData
>(
this));
115 reinterpret_cast<ClientData
>(
this));
133 throw Rexception(
"RtclAttnShuttle::AttnHandler()",
134 "write() failed: ", errno);
145 Tcl_ReadRaw(
fShuttleChn,
reinterpret_cast<char*
>(&apat),
sizeof(apat));
148 Tcl_SetVar2Ex(
fpInterp,
"Rlink_attnbits",
nullptr,
149 Tcl_NewIntObj(
int(apat)), 0);
void AddAttnHandler(attnhdl_t &&attnhdl, uint16_t mask, void *cdata=nullptr)
FIXME_docs.
void GetAttnInfo(AttnArgs &args, RlinkCommandList &clist)
FIXME_docs.
void RemoveAttnHandler(uint16_t mask, void *cdata=nullptr)
FIXME_docs.
void Add(RlinkServer *pserv, Tcl_Interp *interp)
FIXME_docs.
void TclChannelHandler(int mask)
FIXME_docs.
static void ThunkTclChannelHandler(ClientData cdata, int mask)
FIXME_docs.
RlinkServer * fpServ
RlinkServer used.
~RtclAttnShuttle()
Destructor.
Tcl_Interp * fpInterp
Tcl interpreter used.
RtclOPtr fpScript
Tcl handler script (as Tcl_Obj)
int AttnHandler(RlinkServer::AttnArgs &args)
FIXME_docs.
RtclAttnShuttle(uint16_t mask, Tcl_Obj *pobj)
constructor
int fFdPipeWrite
attn pipe write fd
Tcl_Channel fShuttleChn
Tcl channel.
int fFdPipeRead
attn pipe read fd
Declaration of class ReventLoop.
uint16_t fAttnPatt
in: current attention pattern
uint16_t fAttnMask
in: handler attention mask