Exemplo n.º 1
0
void AsioExtension::initConditionWaitHandle() {
  HHVM_STATIC_MALIAS(HH\\ConditionWaitHandle, create,
                     ConditionWaitHandle, create);
  HHVM_STATIC_MALIAS(HH\\ConditionWaitHandle, setOnCreateCallback,
                     ConditionWaitHandle, setOnCreateCallback);
  HHVM_MALIAS(HH\\ConditionWaitHandle, succeed, ConditionWaitHandle, succeed);
  HHVM_MALIAS(HH\\ConditionWaitHandle, fail, ConditionWaitHandle, fail);
}
Exemplo n.º 2
0
void ZMQExtension::moduleInit() {
#define RCC_S(class_name, const_name, value) \
  Native::registerClassConstant<KindOfString>(s_##class_name.get(), \
    makeStaticString(#const_name), makeStaticString(value));
#define RCC_I(class_name, const_name, value) \
  Native::registerClassConstant<KindOfInt64>(s_##class_name.get(), \
    makeStaticString(#const_name), (int64_t)value);


  HHVM_STATIC_ME(ZMQ, clock);

#if (ZMQ_VERSION_MAJOR == 3 && ZMQ_VERSION_MINOR >= 2) || ZMQ_VERSION_MAJOR > 3
  RCC_I(ZMQ, CTXOPT_MAX_SOCKETS, ZMQ_MAX_SOCKETS);
  RCC_I(ZMQ, CTXOPT_MAX_SOCKETS_DEFAULT, ZMQ_MAX_SOCKETS_DFLT);
#endif

  RCC_I(ZMQ, DEVICE_FORWARDER, ZMQ_FORWARDER);
  RCC_I(ZMQ, DEVICE_QUEUE, ZMQ_QUEUE);
  RCC_I(ZMQ, DEVICE_STREAMER, ZMQ_STREAMER);

  RCC_I(ZMQ, ERR_INTERNAL, PHP_ZMQ_INTERNAL_ERROR);
  RCC_I(ZMQ, ERR_EAGAIN, EAGAIN);
  RCC_I(ZMQ, ERR_ENOTSUP, ENOTSUP);
  RCC_I(ZMQ, ERR_EFSM, EFSM);
  RCC_I(ZMQ, ERR_ETERM, ETERM);

  RCC_S(ZMQ, LIBZMQ_VER, ZMQ::getLibVersion());

#if ZMQ_VERSION_MAJOR == 3 && ZMQ_VERSION_MINOR == 0
  RCC_I(ZMQ, MODE_SNDLABEL, ZMQ_SNDLABEL);
#endif
  RCC_I(ZMQ, MODE_SNDMORE, ZMQ_SNDMORE);
  RCC_I(ZMQ, MODE_NOBLOCK, ZMQ_DONTWAIT);
  RCC_I(ZMQ, MODE_DONTWAIT, ZMQ_DONTWAIT);

  RCC_I(ZMQ, POLL_IN, ZMQ_POLLIN);
  RCC_I(ZMQ, POLL_OUT, ZMQ_POLLOUT);

  /* Socket constants */
  RCC_I(ZMQ, SOCKET_PAIR, ZMQ_PAIR);
  RCC_I(ZMQ, SOCKET_PUB, ZMQ_PUB);
  RCC_I(ZMQ, SOCKET_SUB, ZMQ_SUB);
#if ZMQ_VERSION_MAJOR >= 3
  RCC_I(ZMQ, SOCKET_XSUB, ZMQ_XSUB);
  RCC_I(ZMQ, SOCKET_XPUB, ZMQ_XPUB);
#endif
  RCC_I(ZMQ, SOCKET_REQ, ZMQ_REQ);
  RCC_I(ZMQ, SOCKET_REP, ZMQ_REP);
  RCC_I(ZMQ, SOCKET_XREQ, ZMQ_XREQ);
  RCC_I(ZMQ, SOCKET_XREP, ZMQ_XREP);
  RCC_I(ZMQ, SOCKET_PUSH, ZMQ_PUSH);
  RCC_I(ZMQ, SOCKET_PULL, ZMQ_PULL);
  RCC_I(ZMQ, SOCKET_DEALER, ZMQ_DEALER);
  RCC_I(ZMQ, SOCKET_ROUTER, ZMQ_ROUTER);
#if ZMQ_VERSION_MAJOR >= 4
  RCC_I(ZMQ, SOCKET_STREAM, ZMQ_STREAM);
#endif

  RCC_I(ZMQ, SOCKET_UPSTREAM, ZMQ_PULL);
  RCC_I(ZMQ, SOCKET_DOWNSTREAM, ZMQ_PUSH);


  Native::registerNativeDataInfo<ZMQContext>(s_ZMQContext.get(),
                                             Native::NDIFlags::NO_COPY);
  HHVM_ME(ZMQContext, __construct);
  HHVM_STATIC_ME(ZMQContext, acquire);
  HHVM_ME(ZMQContext, isPersistent);
#if (ZMQ_VERSION_MAJOR == 3 && ZMQ_VERSION_MINOR >= 2) || ZMQ_VERSION_MAJOR > 3
  HHVM_ME(ZMQContext, getOpt);
  HHVM_ME(ZMQContext, setOpt);
#endif
  HHVM_ME(ZMQContext, getSocket);

  Native::registerNativeDataInfo<ZMQSocket>(s_ZMQSocket.get(),
                                            Native::NDIFlags::NO_COPY);
  HHVM_ME(ZMQSocket, __construct);
  HHVM_ME(ZMQSocket, send);
  HHVM_MALIAS(ZMQSocket, sendMsg, ZMQSocket, send);
  HHVM_ME(ZMQSocket, sendMulti);
  HHVM_ME(ZMQSocket, recv);
  HHVM_MALIAS(ZMQSocket, recvMsg, ZMQSocket, recv);
  HHVM_ME(ZMQSocket, recvMulti);
  HHVM_ME(ZMQSocket, getPersistentId);
  HHVM_ME(ZMQSocket, bind);
  HHVM_ME(ZMQSocket, connect);
#if (ZMQ_VERSION_MAJOR == 3 && ZMQ_VERSION_MINOR >= 2) || ZMQ_VERSION_MAJOR > 3
  HHVM_ME(ZMQSocket, unbind);
  HHVM_ME(ZMQSocket, disconnect);
#endif
  HHVM_ME(ZMQSocket, getEndpoints);
  HHVM_ME(ZMQSocket, getSocketType);
  HHVM_ME(ZMQSocket, isPersistent);
  HHVM_ME(ZMQSocket, getSockOpt);
  HHVM_ME(ZMQSocket, setSockOpt);


  Native::registerNativeDataInfo<ZMQPoll>(s_ZMQPoll.get(),
                                          Native::NDIFlags::NO_COPY);
  HHVM_ME(ZMQPoll, add);
  HHVM_ME(ZMQPoll, remove);
  HHVM_ME(ZMQPoll, poll);
  HHVM_ME(ZMQPoll, count);
  HHVM_ME(ZMQPoll, clear);

  Native::registerNativeDataInfo<ZMQDevice>(s_ZMQDevice.get(),
                Native::NDIFlags::NO_COPY | Native::NDIFlags::NO_SWEEP);
  HHVM_ME(ZMQDevice, __construct);
  HHVM_ME(ZMQDevice, run);
  HHVM_ME(ZMQDevice, getIdleTimeout);
  HHVM_ME(ZMQDevice, setIdleTimeout);
  HHVM_ME(ZMQDevice, getTimerTimeout);
  HHVM_ME(ZMQDevice, setTimerTimeout);
  HHVM_ME(ZMQDevice, setIdleCallback);
  HHVM_ME(ZMQDevice, setTimerCallback);

#ifdef HAVE_LIBCZMQ
  Native::registerNativeDataInfo<ZMQCert>(s_ZMQCert.get());
  HHVM_ME(ZMQCert, __construct);
  HHVM_ME(ZMQCert, getPublicKey);
  HHVM_ME(ZMQCert, getSecretKey);
  HHVM_ME(ZMQCert, getPublicTxt);
  HHVM_ME(ZMQCert, getSecretTxt);
  HHVM_ME(ZMQCert, setMeta);
  HHVM_ME(ZMQCert, getMeta);
  HHVM_ME(ZMQCert, getMetaKeys);
  HHVM_ME(ZMQCert, save);
  HHVM_ME(ZMQCert, savePublic);
  HHVM_ME(ZMQCert, saveSecret);
  HHVM_ME(ZMQCert, apply);
  HHVM_ME(ZMQCert, equals);

  Native::registerNativeDataInfo<ZMQAuth>(s_ZMQAuth.get(),
                                          Native::NDIFlags::NO_COPY);
  HHVM_ME(ZMQAuth, __construct);
  HHVM_ME(ZMQAuth, allow);
  HHVM_ME(ZMQAuth, deny);
  HHVM_ME(ZMQAuth, configure);
  RCC_I(ZMQAuth, AUTH_TYPE_PLAIN, ZMQAuthType::Plain);
  RCC_I(ZMQAuth, AUTH_TYPE_CURVE, ZMQAuthType::Curve);

  RCC_S(ZMQ, CURVE_ALLOW_ANY, CURVE_ALLOW_ANY);
#endif

  registerSockoptConstants();

  loadSystemlib();

  ZMQ::initializeClock();
  initializeExceptionReferences();

#undef RCC_I
#undef RCC_S
}