/** * Creates new enum descriptor * * @param string $name Enum name * @param FileDescriptor $file Containing file * @param MessageDescriptor $containing Containing message */ public function __construct($name, FileDescriptor $file, $containing) { $this->_name = $name; $this->_file = $file; $this->_containing = $containing; if (is_null($containing)) { $file->addEnum($this); } if (!is_null($containing)) { $containing->addEnum($this); } }
/** * Constructs new message descriptor * * @param string $name Message name * @param FileDescriptor $file File defining message * @param MessageDescriptor $containing Parent message */ public function __construct($name, FileDescriptor $file, MessageDescriptor $containing = null) { $this->_name = $name; $this->_file = $file; $this->_containing = $containing; if (is_null($containing)) { $file->addMessage($this); } if (!is_null($containing)) { $containing->addNested($this); } }
function unregister(FileDescriptor $stream) { $fd = $stream->toFileDescriptor(); unset($this->read[(int) $fd]); unset($this->write[(int) $fd]); unset($this->except[(int) $fd]); unset($this->streams[(int) $fd]); }
/** * Resolves namespaces for given file descriptor * * @param FileDescriptor $file File descriptor * * @return null */ private function _resolveNamespaces(FileDescriptor $file) { foreach ($file->getEnums() as $descriptor) { $this->_namespaces[$file->getPackage()][$descriptor->getName()] = $descriptor; } foreach ($file->getMessages() as $name => $descriptor) { $this->_namespaces[$file->getPackage()][$descriptor->getName()] = $descriptor; } foreach (self::$_parsers as $parser) { foreach ($parser->getNamespaces() as $namespace => $descriptors) { foreach ($descriptors as $name => $descriptor) { $this->_namespaces[$namespace][$name] = $descriptor; } } } foreach ($file->getMessages() as $name => $descriptor) { $this->_resolveMessageFieldTypes($descriptor, $file); } }