Variant f_xcache_get(CStrRef name) {
  throw NotImplementedException(__func__);
}
int64 f_xcache_inc(CStrRef name, int64 value /* = 1 */, int ttl /* = 0 */) {
  throw NotImplementedException(__func__);
}
Esempio n. 3
0
String f_hphp_recursivedirectoryiterator_getsubpathname(CObjRef obj) {
    throw NotImplementedException(__func__);
}
bool f_xcache_set(CStrRef name, CVarRef value, int ttl /* = 0 */) {
  throw NotImplementedException(__func__);
}
Esempio n. 5
0
void f_hphp_recursiveiteratoriterator_next(CObjRef obj) {
    RecursiveIteratorIterator *rii = get_recursiveiteratoriterator(obj);
    unsigned int size = rii->m_iterators.size();
    if (!size) return;
    Object ci = rii->m_iterators[size-1].first;
    if (rii->m_mode == HPHP::q_RecursiveIteratorIterator$$SELF_FIRST) {
        if (!ci.is<RecursiveDirectoryIterator>()) {
            throw NotImplementedException("this type of iterator");
        }
        RecursiveDirectoryIterator *rdi =
            ci.getTyped<RecursiveDirectoryIterator>();
        String pathName = rdi->getPathName();
        if (f_is_dir(pathName) && !rii->m_iterators[size-1].second) {
            rii->m_iterators[size-1].second = 1;
            RecursiveDirectoryIterator *ii =
                NEWOBJ(RecursiveDirectoryIterator)(pathName, rdi->m_flags);
            rii->m_iterators.push_back(std::make_pair(ii, 0));
            ii->incRefCount();
            if (ii->isdot()) ii->next();
        } else {
            rdi->next();
            rii->m_iterators[size-1].second = 0;
        }
        if (f_hphp_recursiveiteratoriterator_valid(obj)) return;
        decRefObj(rii->m_iterators.back().first);
        rii->m_iterators.pop_back();
        return f_hphp_recursiveiteratoriterator_next(obj);
    } else if (rii->m_mode == HPHP::q_RecursiveIteratorIterator$$CHILD_FIRST ||
               rii->m_mode == HPHP::q_RecursiveIteratorIterator$$LEAVES_ONLY) {
        if (!ci.is<RecursiveDirectoryIterator>()) {
            throw NotImplementedException("this type of iterator");
        }
        RecursiveDirectoryIterator *rdi =
            ci.getTyped<RecursiveDirectoryIterator>();
        String pathName = rdi->getPathName();
        if (pathName.empty()) {
            decRefObj(rii->m_iterators.back().first);
            rii->m_iterators.pop_back();
            return f_hphp_recursiveiteratoriterator_next(obj);
        } else if (f_is_dir(pathName)) {
            if (!rii->m_iterators[size-1].second) {
                rii->m_iterators[size-1].second = 1;
                RecursiveDirectoryIterator *ii =
                    NEWOBJ(RecursiveDirectoryIterator)(pathName, rdi->m_flags);
                rii->m_iterators.push_back(std::make_pair(ii, 0));
                ii->incRefCount();
                ii->rewind();
                if (f_hphp_recursiveiteratoriterator_valid(obj)) return;
                return f_hphp_recursiveiteratoriterator_next(obj);
            } else {
                // CHILD_FIRST: 0 - drill down; 1 - visit 2 - next
                // LEAVES_ONLY: 0 - drill down; 1 - next
                if (rii->m_mode == HPHP::q_RecursiveIteratorIterator$$CHILD_FIRST &&
                        rii->m_iterators[size-1].second == 1) {
                    rii->m_iterators[size-1].second = 2;
                    return;
                }
            }
        }
        rii->m_iterators[size-1].second = 0;
        rdi->next();
        if (f_hphp_recursiveiteratoriterator_valid(obj)) return;
        return f_hphp_recursiveiteratoriterator_next(obj);
    } else {
        if (!ci.is<RecursiveDirectoryIterator>()) {
            throw NotImplementedException("this type of iterator");
        }
        RecursiveDirectoryIterator *rdi =
            ci.getTyped<RecursiveDirectoryIterator>();
        assert(rii->m_iterators[size-1].second == 0);
        rdi->next();
    }
}
Esempio n. 6
0
std::string Object::getDescription() const
{
    throw NotImplementedException();
}
Esempio n. 7
0
void Object::getTexture() const
{
    throw NotImplementedException();
}
void XInputSimulatorImplMacOs::initCurrentMousePosition()
{
    throw NotImplementedException();
}
Esempio n. 9
0
String StringUtil::HtmlEncodeExtra(CStrRef input, QuoteStyle quoteStyle,
                                   const char *charset, bool nbsp,
                                   Array extra) {
  if (input.empty()) return input;

  assert(charset);
  int flags = STRING_HTML_ENCODE_UTF8;
  if (nbsp) {
    flags |= STRING_HTML_ENCODE_NBSP;
  }
  if (RuntimeOption::Utf8izeReplace) {
    flags |= STRING_HTML_ENCODE_UTF8IZE_REPLACE;
  }
  if (!*charset || strcasecmp(charset, "UTF-8") == 0) {
  } else if (strcasecmp(charset, "ISO-8859-1") == 0) {
    flags &= ~STRING_HTML_ENCODE_UTF8;
  } else {
    throw NotImplementedException(charset);
  }

  const AsciiMap *am;
  AsciiMap tmp;

  switch (quoteStyle) {
    case FBUtf8Only:
      am = &mapNothing;
      flags |= STRING_HTML_ENCODE_HIGH;
      break;
    case FBUtf8:
      am = &mapBothQuotes;
      flags |= STRING_HTML_ENCODE_HIGH;
      break;
    case BothQuotes:
      am = &mapBothQuotes;
      break;
    case DoubleQuotes:
      am = &mapDoubleQuotes;
      break;
    case NoQuotes:
      am = &mapNoQuotes;
      break;
    default:
      am = &mapNothing;
      raise_error("Unknown quote style: %d", (int)quoteStyle);
  }

  if (quoteStyle != FBUtf8Only && extra.toBoolean()) {
    tmp = *am;
    am = &tmp;
    for (ArrayIter iter(extra); iter; ++iter) {
      String item = iter.second().toString();
      char c = item.data()[0];
      tmp.map[c & 64 ? 1 : 0] |= 1uLL << (c & 63);
    }
  }

  int len = input.size();
  char *ret = string_html_encode_extra(input, len,
                                       (StringHtmlEncoding)flags, am);
  if (!ret) {
    raise_error("HtmlEncode called on too large input (%d)", len);
  }
  return String(ret, len, AttachString);
}