original_string: public function generate($userid, $userkey = null) {
          global $CFG;
  
          // Ensure that Inbound Message is enabled and that there is enough information to proceed.
          if (!manager::is_enabled()) {
              return null;
          }
  
          if ($userkey == null) {
              $userkey = get_user_key('messageinbound_handler', $userid);
          }
  
          // Ensure that the minimum requirements are in place.
          if (!isset($this->handler) || !$this->handler) {
              throw new \coding_exception('Inbound Message handler not specified.');
          }
  
          // Ensure that the requested handler is actually enabled.
          if (!$this->handler->enabled) {
              return null;
          }
  
          if (!isset($this->datavalue)) {
              throw new \coding_exception('Inbound Message data item has not been specified.');
          }
  
          $data = array(
              self::pack_int($this->handler->id),
              self::pack_int($userid),
              self::pack_int($this->datavalue),
              pack('H*', substr(md5($this->fetch_data_key() . $userkey), 0, self::HASHSIZE)),
          );
          $subaddress = base64_encode(implode($data));
  
          return $CFG->messageinbound_mailbox . '+' . $subaddress . '@' . $CFG->messageinbound_domain;
      }
code: public function generate($userid, $userkey = null) {
          global $CFG;
  
          // Ensure that Inbound Message is enabled and that there is enough information to proceed.
          if (!manager::is_enabled()) {
              return null;
          }
  
          if ($userkey == null) {
              $userkey = get_user_key('messageinbound_handler', $userid);
          }
  
          // Ensure that the minimum requirements are in place.
          if (!isset($this->handler) || !$this->handler) {
              throw new \coding_exception('Inbound Message handler not specified.');
          }
  
          // Ensure that the requested handler is actually enabled.
          if (!$this->handler->enabled) {
              return null;
          }
  
          if (!isset($this->datavalue)) {
              throw new \coding_exception('Inbound Message data item has not been specified.');
          }
  
          $data = array(
              self::pack_int($this->handler->id),
              self::pack_int($userid),
              self::pack_int($this->datavalue),
              pack('H*', substr(md5($this->fetch_data_key() . $userkey), 0, self::HASHSIZE)),
          );
          $subaddress = base64_encode(implode($data));
  
          return $CFG->messageinbound_mailbox . '+' . $subaddress . '@' . $CFG->messageinbound_domain;
      }
code_tokens: public function generate ( $ userid , $ userkey = null ) { global $ CFG ; // Ensure that Inbound Message is enabled and that there is enough information to proceed. if ( ! manager :: is_enabled ( ) ) { return null ; } if ( $ userkey == null ) { $ userkey = get_user_key ( 'messageinbound_handler' , $ userid ) ; } // Ensure that the minimum requirements are in place. if ( ! isset ( $ this -> handler ) || ! $ this -> handler ) { throw new \ coding_exception ( 'Inbound Message handler not specified.' ) ; } // Ensure that the requested handler is actually enabled. if ( ! $ this -> handler -> enabled ) { return null ; } if ( ! isset ( $ this -> datavalue ) ) { throw new \ coding_exception ( 'Inbound Message data item has not been specified.' ) ; } $ data = array ( self :: pack_int ( $ this -> handler -> id ) , self :: pack_int ( $ userid ) , self :: pack_int ( $ this -> datavalue ) , pack ( 'H*' , substr ( md5 ( $ this -> fetch_data_key ( ) . $ userkey ) , 0 , self :: HASHSIZE ) ) , ) ; $ subaddress = base64_encode ( implode ( $ data ) ) ; return $ CFG -> messageinbound_mailbox . '+' . $ subaddress . '@' . $ CFG -> messageinbound_domain ; }
docstring: Generate an e-mail address for the Inbound Message handler, storing a private
  key for the data object if one was not specified.
  
  @param int $userid The ID of the user to generated an address for.
  @param string $userkey The unique key for this user. If not specified this will be retrieved using
  get_user_key(). This key must have been created using get_user_key(). This parameter is provided as a performance
  optimisation for when generating multiple addresses for the same user.
  @return string|null The generated address, or null if an address could not be generated.
docstring_tokens: Generate an e - mail address for the Inbound Message handler storing a private key for the data object if one was not specified .