/**
  * 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);
     }
 }
Exemple #3
0
 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);
     }
 }