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); }
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"); }
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(); }
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"); }
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"); }
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"); }