Exemplo n.º 1
0
void AsioExtension::initRescheduleWaitHandle() {
  HHVM_STATIC_MALIAS(HH\\RescheduleWaitHandle, create,
                     RescheduleWaitHandle, create);

  HHVM_RCC_INT(HH_RescheduleWaitHandle, QUEUE_DEFAULT,
               AsioContext::QUEUE_DEFAULT);
  HHVM_RCC_INT(HH_RescheduleWaitHandle, QUEUE_NO_PENDING_IO,
               AsioContext::QUEUE_NO_PENDING_IO);
}
Exemplo n.º 2
0
void IntlExtension::initDateFormatter() {
  HHVM_RCC_INT(IntlDateFormatter, FULL, UDAT_FULL);
  HHVM_RCC_INT(IntlDateFormatter, LONG, UDAT_LONG);
  HHVM_RCC_INT(IntlDateFormatter, MEDIUM, UDAT_MEDIUM);
  HHVM_RCC_INT(IntlDateFormatter, SHORT, UDAT_SHORT);
  HHVM_RCC_INT(IntlDateFormatter, NONE, UDAT_NONE);

  HHVM_RCC_INT(IntlDateFormatter, GREGORIAN, UCAL_GREGORIAN);
  HHVM_RCC_INT(IntlDateFormatter, TRADITIONAL, UCAL_TRADITIONAL);

  HHVM_ME(IntlDateFormatter, __construct);
  HHVM_ME(IntlDateFormatter, format);
  HHVM_STATIC_ME(IntlDateFormatter, formatObject);
  HHVM_ME(IntlDateFormatter, getCalendar);
  HHVM_ME(IntlDateFormatter, getDateType);
  HHVM_ME(IntlDateFormatter, getErrorCode);
  HHVM_ME(IntlDateFormatter, getErrorMessage);
  HHVM_ME(IntlDateFormatter, getLocale);
  HHVM_ME(IntlDateFormatter, getPattern);
  HHVM_ME(IntlDateFormatter, getTimeType);
  HHVM_ME(IntlDateFormatter, getTimeZoneId);
  HHVM_ME(IntlDateFormatter, getCalendarObject);
  HHVM_ME(IntlDateFormatter, getTimeZone);
  HHVM_ME(IntlDateFormatter, isLenient);
  HHVM_ME(IntlDateFormatter, localtime);
  HHVM_ME(IntlDateFormatter, parse);
  HHVM_ME(IntlDateFormatter, setCalendar);
  HHVM_ME(IntlDateFormatter, setLenient);
  HHVM_ME(IntlDateFormatter, setPattern);
  HHVM_ME(IntlDateFormatter, setTimeZone);

  Native::registerNativeDataInfo<IntlDateFormatter>(s_IntlDateFormatter.get());

  loadSystemlib("icu_date_fmt");
}
Exemplo n.º 3
0
  void moduleInit() override {
    HHVM_RCC_INT(XMLReader, NONE, XML_READER_TYPE_NONE);
    HHVM_RCC_INT(XMLReader, ELEMENT, XML_READER_TYPE_ELEMENT);
    HHVM_RCC_INT(XMLReader, ATTRIBUTE, XML_READER_TYPE_ATTRIBUTE);
    HHVM_RCC_INT(XMLReader, TEXT, XML_READER_TYPE_TEXT);
    HHVM_RCC_INT(XMLReader, CDATA, XML_READER_TYPE_CDATA);
    HHVM_RCC_INT(XMLReader, ENTITY_REF, XML_READER_TYPE_ENTITY_REFERENCE);
    HHVM_RCC_INT(XMLReader, ENTITY, XML_READER_TYPE_ENTITY);
    HHVM_RCC_INT(XMLReader, PI, XML_READER_TYPE_PROCESSING_INSTRUCTION);
    HHVM_RCC_INT(XMLReader, COMMENT, XML_READER_TYPE_COMMENT);
    HHVM_RCC_INT(XMLReader, DOC, XML_READER_TYPE_DOCUMENT);
    HHVM_RCC_INT(XMLReader, DOC_TYPE, XML_READER_TYPE_DOCUMENT_TYPE);
    HHVM_RCC_INT(XMLReader, DOC_FRAGMENT, XML_READER_TYPE_DOCUMENT_FRAGMENT);
    HHVM_RCC_INT(XMLReader, NOTATION, XML_READER_TYPE_NOTATION);
    HHVM_RCC_INT(XMLReader, WHITESPACE, XML_READER_TYPE_WHITESPACE);
    HHVM_RCC_INT(XMLReader, SIGNIFICANT_WHITESPACE,
                 XML_READER_TYPE_SIGNIFICANT_WHITESPACE);
    HHVM_RCC_INT(XMLReader, END_ELEMENT, XML_READER_TYPE_END_ELEMENT);
    HHVM_RCC_INT(XMLReader, END_ENTITY, XML_READER_TYPE_END_ENTITY);
    HHVM_RCC_INT(XMLReader, XML_DECLARATION, XML_READER_TYPE_XML_DECLARATION);
    HHVM_RCC_INT(XMLReader, LOADDTD, XML_PARSER_LOADDTD);
    HHVM_RCC_INT(XMLReader, DEFAULTATTRS, XML_PARSER_DEFAULTATTRS);
    HHVM_RCC_INT(XMLReader, VALIDATE, XML_PARSER_VALIDATE);
    HHVM_RCC_INT(XMLReader, SUBST_ENTITIES, XML_PARSER_SUBST_ENTITIES);

    HHVM_ME(XMLReader, open);
    HHVM_ME(XMLReader, XML);
    HHVM_ME(XMLReader, close);
    HHVM_ME(XMLReader, read);
    HHVM_ME(XMLReader, next);
    HHVM_ME(XMLReader, readString);
    HHVM_ME(XMLReader, readInnerXML);
    HHVM_ME(XMLReader, readOuterXML);
    HHVM_ME(XMLReader, moveToNextAttribute);
    HHVM_ME(XMLReader, getAttribute);
    HHVM_ME(XMLReader, getAttributeNo);
    HHVM_ME(XMLReader, getAttributeNs);
    HHVM_ME(XMLReader, moveToAttribute);
    HHVM_ME(XMLReader, moveToAttributeNo);
    HHVM_ME(XMLReader, moveToAttributeNs);
    HHVM_ME(XMLReader, moveToElement);
    HHVM_ME(XMLReader, moveToFirstAttribute);
    HHVM_ME(XMLReader, isValid);
    HHVM_ME(XMLReader, __get);
    HHVM_ME(XMLReader, getParserProperty);
    HHVM_ME(XMLReader, lookupNamespace);
    HHVM_ME(XMLReader, setSchema);
    HHVM_ME(XMLReader, setParserProperty);
    HHVM_ME(XMLReader, setRelaxNGSchema);
    HHVM_ME(XMLReader, setRelaxNGSchemaSource);
    HHVM_ME(XMLReader, expand);

    Native::registerNativeDataInfo<XMLReader>(s_XMLReader.get());

    loadSystemlib();
  }
Exemplo n.º 4
0
  void moduleInit() override {
    HHVM_ME(DateTime, __construct);
    HHVM_ME(DateTime, add);
    HHVM_ME(DateTime, diff);
    HHVM_ME(DateTime, format);
    HHVM_ME(DateTime, getOffset);
    HHVM_ME(DateTime, getTimestamp);
    HHVM_ME(DateTime, getTimezone);
    HHVM_ME(DateTime, modify);
    HHVM_ME(DateTime, setDate);
    HHVM_ME(DateTime, setISODate);
    HHVM_ME(DateTime, setTime);
    HHVM_ME(DateTime, setTimestamp);
    HHVM_ME(DateTime, setTimezone);
    HHVM_ME(DateTime, sub);
    HHVM_ME(DateTime, __sleep);
    HHVM_ME(DateTime, __wakeup);
    HHVM_ME(DateTime, __debuginfo);
    HHVM_STATIC_ME(DateTime, createFromFormat);
    HHVM_STATIC_ME(DateTime, getLastErrors);

    Native::registerNativeDataInfo<DateTimeData>(
      DateTimeData::s_className.get(), Native::NDIFlags::NO_SWEEP);

    HHVM_RC_STR_SAME(DATE_ATOM);
    HHVM_RCC_STR(DateTime, ATOM, DATE_ATOM);
    HHVM_RC_STR_SAME(DATE_COOKIE);
    HHVM_RCC_STR(DateTime, COOKIE, DATE_COOKIE);
    HHVM_RC_STR_SAME(DATE_ISO8601);
    HHVM_RCC_STR(DateTime, ISO8601, DATE_ISO8601);
    HHVM_RC_STR_SAME(DATE_RFC822);
    HHVM_RCC_STR(DateTime, RFC822, DATE_RFC822);
    HHVM_RC_STR_SAME(DATE_RFC850);
    HHVM_RCC_STR(DateTime, RFC850, DATE_RFC850);
    HHVM_RC_STR_SAME(DATE_RFC1036);
    HHVM_RCC_STR(DateTime, RFC1036, DATE_RFC1036);
    HHVM_RC_STR_SAME(DATE_RFC1123);
    HHVM_RCC_STR(DateTime, RFC1123, DATE_RFC1123);
    HHVM_RC_STR_SAME(DATE_RFC2822);
    HHVM_RCC_STR(DateTime, RFC2822, DATE_RFC2822);
    HHVM_RC_STR_SAME(DATE_RFC3339);
    HHVM_RCC_STR(DateTime, RFC3339, DATE_RFC3339);
    HHVM_RC_STR_SAME(DATE_RSS);
    HHVM_RCC_STR(DateTime, RSS, DATE_RSS);
    HHVM_RC_STR_SAME(DATE_W3C);
    HHVM_RCC_STR(DateTime, W3C, DATE_W3C);

    HHVM_RCC_INT(DateTimeZone, AFRICA, DateTimeZoneData::AFRICA);
    HHVM_RCC_INT(DateTimeZone, AMERICA, DateTimeZoneData::AMERICA);
    HHVM_RCC_INT(DateTimeZone, ANTARCTICA, DateTimeZoneData::ANTARCTICA);
    HHVM_RCC_INT(DateTimeZone, ARCTIC, DateTimeZoneData::ARCTIC);
    HHVM_RCC_INT(DateTimeZone, ASIA, DateTimeZoneData::ASIA);
    HHVM_RCC_INT(DateTimeZone, ATLANTIC, DateTimeZoneData::ATLANTIC);
    HHVM_RCC_INT(DateTimeZone, AUSTRALIA, DateTimeZoneData::AUSTRALIA);
    HHVM_RCC_INT(DateTimeZone, EUROPE, DateTimeZoneData::EUROPE);
    HHVM_RCC_INT(DateTimeZone, INDIAN, DateTimeZoneData::INDIAN);
    HHVM_RCC_INT(DateTimeZone, PACIFIC, DateTimeZoneData::PACIFIC);
    HHVM_RCC_INT(DateTimeZone, UTC, DateTimeZoneData::UTC);
    HHVM_RCC_INT(DateTimeZone, ALL, DateTimeZoneData::ALL);
    HHVM_RCC_INT(DateTimeZone, ALL_WITH_BC, DateTimeZoneData::ALL_WITH_BC);
    HHVM_RCC_INT(DateTimeZone, PER_COUNTRY, DateTimeZoneData::PER_COUNTRY);

    HHVM_ME(DateTimeZone, __construct);
    HHVM_ME(DateTimeZone, getLocation);
    HHVM_ME(DateTimeZone, getName);
    HHVM_ME(DateTimeZone, getOffset);
    HHVM_ME(DateTimeZone, getTransitions);
    HHVM_STATIC_ME(DateTimeZone, listAbbreviations);
    HHVM_STATIC_ME(DateTimeZone, listIdentifiers);

    Native::registerNativeDataInfo<DateTimeZoneData>(
      DateTimeZoneData::s_className.get(), Native::NDIFlags::NO_SWEEP);

    HHVM_ME(DateInterval, __construct);
    HHVM_ME(DateInterval, __get);
    HHVM_ME(DateInterval, __set);
    HHVM_ME(DateInterval, format);
    HHVM_STATIC_ME(DateInterval, createFromDateString);

    Native::registerNativeDataInfo<DateIntervalData>(
      DateIntervalData::s_className.get(), Native::NDIFlags::NO_SWEEP);

    HHVM_FE(checkdate);
    HHVM_FE(date_parse_from_format);
    HHVM_FE(date_create);
    HHVM_FE(date_default_timezone_get);
    HHVM_FE(date_default_timezone_set);
    HHVM_FE(date_format);
    HHVM_FE(date_parse);
    HHVM_FE(date_sun_info);
    HHVM_NAMED_FE(date_sunrise, date_sunrise_sunset<false>);
    HHVM_NAMED_FE(date_sunset, date_sunrise_sunset<true>);
    HHVM_NAMED_FE(date, date_impl<false>);
    HHVM_NAMED_FE(gmdate, date_impl<true>);
    HHVM_FE(getdate);
    HHVM_FE(gettimeofday);
    HHVM_FE(gmmktime);
    HHVM_NAMED_FE(strftime, strftime_impl<false>);
    HHVM_NAMED_FE(gmstrftime, strftime_impl<true>);
    HHVM_FE(idate);
    HHVM_FE(localtime);
    HHVM_FE(microtime);
    HHVM_FE(mktime);
    HHVM_FE(strptime);
    HHVM_FE(strtotime);
    HHVM_FE(time);
    HHVM_FE(timezone_name_from_abbr);
    HHVM_FE(timezone_version_get);

    HHVM_RC_INT(SUNFUNCS_RET_DOUBLE, DateTime::SunInfoFormat::ReturnDouble);
    HHVM_RC_INT(SUNFUNCS_RET_STRING, DateTime::SunInfoFormat::ReturnString);
    HHVM_RC_INT(SUNFUNCS_RET_TIMESTAMP,
                DateTime::SunInfoFormat::ReturnTimeStamp);

    loadSystemlib("datetime");
  }
Exemplo n.º 5
0
void IntlExtension::initUChar() {
  HHVM_RCC_STR(IntlChar, UNICODE_VERSION, U_UNICODE_VERSION);

  HHVM_RCC_INT(IntlChar, CODEPOINT_MIN, UCHAR_MIN_VALUE);
  HHVM_RCC_INT(IntlChar, CODEPOINT_MAX, UCHAR_MAX_VALUE);
  HHVM_RCC_INT(IntlChar, FOLD_CASE_DEFAULT, U_FOLD_CASE_DEFAULT);
  HHVM_RCC_INT(IntlChar, FOLD_CASE_EXCLUDE_SPECIAL_I,
               U_FOLD_CASE_EXCLUDE_SPECIAL_I);
  HHVM_RCC_DBL(IntlChar, NO_NUMERIC_VALUE, U_NO_NUMERIC_VALUE);

/* All enums used by the uchar APIs.  There are a LOT of them,
  * so they're separated out into include files,
  * leaving this source file for actual implementation.
  *
  * Note that these includes are shared between PHP and HHVM
  */
#define IC_CONSTL(name, val) HHVM_RCC_INT(IntlChar, name, val);
#define UPROPERTY(name) IC_CONSTL(PROPERTY_##name, UCHAR_##name)
#define UCHARCATEGORY(name) IC_CONSTL(CHAR_CATEGORY_##name, U_##name)
#define UCHARDIRECTION(name) IC_CONSTL(CHAR_DIRECTION_##name, U_##name)
#define UBLOCKCODE(name) IC_CONSTL(BLOCK_CODE_##name, UBLOCK_##name)
#define UOTHER(name) IC_CONSTL(name, U_##name)

#include "hphp/runtime/ext/icu/uproperty-enum.h"
#include "hphp/runtime/ext/icu/ucharcategory-enum.h"
#include "hphp/runtime/ext/icu/uchardirection-enum.h"
#include "hphp/runtime/ext/icu/ublockcode-enum.h"
  /* Smaller, self-destribing enums */
#include "hphp/runtime/ext/icu/uother-enum.h"

#undef UPROPERTY
#undef UCHARCATEGORY
#undef UCHARDIRECTION
#undef UBLOCKCODE
#undef UOTHER
#undef IC_CONSTL

// Methods returning bool/UChar32 and taking a single UChar32 argument
#define UCHAR_ME(name) \
  HHVM_NAMED_STATIC_ME(IntlChar, name, uchar_method<u_##name>)
  UCHAR_ME(isUAlphabetic);
  UCHAR_ME(isULowercase);
  UCHAR_ME(isUUppercase);
  UCHAR_ME(isUWhiteSpace);
  UCHAR_ME(islower);
  UCHAR_ME(isupper);
  UCHAR_ME(istitle);
  UCHAR_ME(isdigit);
  UCHAR_ME(isalpha);
  UCHAR_ME(isalnum);
  UCHAR_ME(isxdigit);
  UCHAR_ME(ispunct);
  UCHAR_ME(isgraph);
  UCHAR_ME(isblank);
  UCHAR_ME(isdefined);
  UCHAR_ME(isspace);
  UCHAR_ME(isJavaSpaceChar);
  UCHAR_ME(isWhitespace);
  UCHAR_ME(iscntrl);
  UCHAR_ME(isISOControl);
  UCHAR_ME(isprint);
  UCHAR_ME(isbase);
  UCHAR_ME(isMirrored);
  UCHAR_ME(isIDStart);
  UCHAR_ME(isIDPart);
  UCHAR_ME(isIDIgnorable);
  UCHAR_ME(isJavaIDStart);
  UCHAR_ME(isJavaIDPart);
  UCHAR_ME(charMirror);
  UCHAR_ME(tolower);
  UCHAR_ME(toupper);
  UCHAR_ME(totitle);
#if U_ICU_VERSION_MAJOR_NUM >= 52
  UCHAR_ME(getBidiPairedBracket);
#endif /* ICU >= 52 */
#undef UCHAR_ME

// Methods with unique signatures
#define ICS_ME(name) HHVM_STATIC_ME(IntlChar, name)
  ICS_ME(chr);
  ICS_ME(ord);
  ICS_ME(hasBinaryProperty);
  ICS_ME(getIntPropertyValue);
  ICS_ME(getIntPropertyMinValue);
  ICS_ME(getIntPropertyMaxValue);
  ICS_ME(getNumericValue);
  ICS_ME(enumCharTypes);
  ICS_ME(getBlockCode);
  ICS_ME(getBlockCode);
  ICS_ME(charName);
  ICS_ME(charFromName);
  ICS_ME(enumCharNames);
  ICS_ME(getPropertyName);
  ICS_ME(getPropertyEnum);
  ICS_ME(getPropertyValueName);
  ICS_ME(getPropertyValueEnum);
  ICS_ME(foldCase);
  ICS_ME(digit);
  ICS_ME(forDigit);
  ICS_ME(charAge);
  ICS_ME(getUnicodeVersion);
  ICS_ME(getFC_NFKC_Closure);

  ICS_ME(charDirection);
  ICS_ME(charType);
  ICS_ME(getCombiningClass);
  ICS_ME(charDigitValue);
#undef ICS_ME
  loadSystemlib("icu_uchar");
}
Exemplo n.º 6
0
void IntlExtension::initCollator() {
  HHVM_ME(Collator, __construct);
  HHVM_ME(Collator, asort);
  HHVM_ME(Collator, compare);
  HHVM_ME(Collator, getAttribute);
  HHVM_ME(Collator, getErrorCode);
  HHVM_ME(Collator, getErrorMessage);
  HHVM_ME(Collator, getLocale);
  HHVM_ME(Collator, getSortKey);
  HHVM_ME(Collator, getStrength);
  HHVM_ME(Collator, setAttribute);
  HHVM_ME(Collator, setStrength);
  HHVM_ME(Collator, sortWithSortKeys);
  HHVM_ME(Collator, sort);

  HHVM_RCC_INT(Collator, SORT_REGULAR, SORT_REGULAR);
  HHVM_RCC_INT(Collator, SORT_STRING, SORT_STRING);
  HHVM_RCC_INT(Collator, SORT_NUMERIC, SORT_NUMERIC);

  HHVM_RCC_INT(Collator, FRENCH_COLLATION, UCOL_FRENCH_COLLATION);
  HHVM_RCC_INT(Collator, ALTERNATE_HANDLING, UCOL_ALTERNATE_HANDLING);
  HHVM_RCC_INT(Collator, CASE_FIRST, UCOL_CASE_FIRST);
  HHVM_RCC_INT(Collator, CASE_LEVEL, UCOL_CASE_LEVEL);
  HHVM_RCC_INT(Collator, NORMALIZATION_MODE, UCOL_NORMALIZATION_MODE);
  HHVM_RCC_INT(Collator, STRENGTH, UCOL_STRENGTH);
  HHVM_RCC_INT(Collator, HIRAGANA_QUATERNARY_MODE,
               UCOL_HIRAGANA_QUATERNARY_MODE);
  HHVM_RCC_INT(Collator, NUMERIC_COLLATION, UCOL_NUMERIC_COLLATION);
  HHVM_RCC_INT(Collator, PRIMARY, UCOL_PRIMARY);
  HHVM_RCC_INT(Collator, SECONDARY, UCOL_SECONDARY);
  HHVM_RCC_INT(Collator, TERTIARY, UCOL_TERTIARY);
  HHVM_RCC_INT(Collator, DEFAULT_STRENGTH, UCOL_DEFAULT_STRENGTH);
  HHVM_RCC_INT(Collator, QUATERNARY, UCOL_QUATERNARY);
  HHVM_RCC_INT(Collator, IDENTICAL, UCOL_IDENTICAL);
  HHVM_RCC_INT(Collator, OFF, UCOL_OFF);
  HHVM_RCC_INT(Collator, ON, UCOL_ON);
  HHVM_RCC_INT(Collator, SHIFTED, UCOL_SHIFTED);
  HHVM_RCC_INT(Collator, NON_IGNORABLE, UCOL_NON_IGNORABLE);
  HHVM_RCC_INT(Collator, LOWER_FIRST, UCOL_LOWER_FIRST);
  HHVM_RCC_INT(Collator, UPPER_FIRST, UCOL_UPPER_FIRST);

  HHVM_RCC_INT(Collator, DEFAULT_VALUE, UCOL_DEFAULT);

  Native::registerNativeDataInfo<Collator>(s_Collator.get());

  loadSystemlib("icu_collator");
}