private function write_ref(BytesIO $stream, $index) { $stream->write(Tags::TagRef . $index . Tags::TagSemicolon); return true; }
private function readComplexRaw(BytesIO $ostream) { $s = $this->stream->readuntil(Tags::TagOpenbrace) . Tags::TagOpenbrace; $ostream->write($s); while (($tag = $this->stream->getc()) != Tags::TagClosebrace) { $this->privateReadRaw($ostream, $tag); } $ostream->write($tag); }
private function doOutput($name, &$args, $byref, $simple, $context) { if ($simple === null) { $simple = $this->simple; } $stream = new BytesIO(Tags::TagCall); $writer = new Writer($stream, $simple); $writer->writeString($name); if (count($args) > 0 || $byref) { $writer->reset(); $writer->writeArray($args); if ($byref) { $writer->writeBoolean(true); } } $stream->write(Tags::TagEnd); $request = $stream->toString(); $count = count($this->filters); for ($i = 0; $i < $count; $i++) { $request = $this->filters[$i]->outputFilter($request, $context); } $stream->close(); return $request; }
private function encode($name, array $args, stdClass $context) { $stream = new BytesIO(Tags::TagCall); $writer = new Writer($stream, $context->simple); $writer->writeString($name); if (count($args) > 0 || $context->byref) { $writer->reset(); $writer->writeArray($args); if ($context->byref) { $writer->writeBoolean(true); } } $stream->write(Tags::TagEnd); $request = $stream->toString(); $stream->close(); return $request; }
protected function doFunctionList($context) { $stream = new BytesIO(); $writer = new Writer($stream, true); $stream->write(Tags::TagFunctions); $writer->writeArray($this->names); $stream->write(Tags::TagEnd); $data = $stream->toString(); $stream->close(); return $this->outputFilter($data, $context); }