parameters: (self, out)
docstring: Write out the set of constant functions (those that do not depend on
      the current Pepper IDL).
docstring_summary: Write out the set of constant functions (those that do not depend on
      the current Pepper IDL).
docstring_tokens: Write out the set of constant functions ( those that do not depend on the current Pepper IDL ) .
function: def GenerateFixedFunctions(self, out):
      """Write out the set of constant functions (those that do not depend on
      the current Pepper IDL).
      """
      out.Write("""
  
  static PPB_GetInterface __real_PPBGetInterface;
  static PPP_GetInterface_Type __real_PPPGetInterface;
  
  void __set_real_%(wrapper_prefix)s_PPBGetInterface(PPB_GetInterface real) {
    __real_PPBGetInterface = real;
  }
  
  void __set_real_%(wrapper_prefix)s_PPPGetInterface(PPP_GetInterface_Type real) {
    __real_PPPGetInterface = real;
  }
  
  /* Map interface string -> wrapper metadata */
  static struct %(wrapper_struct)s *%(wrapper_prefix)sPPBShimIface(
      const char *name) {
    struct %(wrapper_struct)s **next = s_ppb_wrappers;
    while (*next != NULL) {
      if (mystrcmp(name, (*next)->iface_macro) == 0) return *next;
      ++next;
    }
    return NULL;
  }
  
  /* Map interface string -> wrapper metadata */
  static struct %(wrapper_struct)s *%(wrapper_prefix)sPPPShimIface(
      const char *name) {
    struct %(wrapper_struct)s **next = s_ppp_wrappers;
    while (*next != NULL) {
      if (mystrcmp(name, (*next)->iface_macro) == 0) return *next;
      ++next;
    }
    return NULL;
  }
  
  const void *__%(wrapper_prefix)s_PPBGetInterface(const char *name) {
    struct %(wrapper_struct)s *wrapper = %(wrapper_prefix)sPPBShimIface(name);
    if (wrapper == NULL) {
      /* We did not generate a wrapper for this, so return the real interface. */
      return (*__real_PPBGetInterface)(name);
    }
  
    /* Initialize the real_iface if it hasn't been. The wrapper depends on it. */
    if (wrapper->real_iface == NULL) {
      const void *iface = (*__real_PPBGetInterface)(name);
      if (NULL == iface) return NULL;
      wrapper->real_iface = iface;
    }
  
    if (wrapper->wrapped_iface) {
      return wrapper->wrapped_iface;
    } else {
      return wrapper->real_iface;
    }
  }
  
  const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
    struct %(wrapper_struct)s *wrapper = %(wrapper_prefix)sPPPShimIface(name);
    if (wrapper == NULL) {
      /* We did not generate a wrapper for this, so return the real interface. */
      return (*__real_PPPGetInterface)(name);
    }
  
    /* Initialize the real_iface if it hasn't been. The wrapper depends on it. */
    if (wrapper->real_iface == NULL) {
      const void *iface = (*__real_PPPGetInterface)(name);
      if (NULL == iface) return NULL;
      wrapper->real_iface = iface;
    }
  
    if (wrapper->wrapped_iface) {
      return wrapper->wrapped_iface;
    } else {
      return wrapper->real_iface;
    }
  }
  """ % { 'wrapper_struct' : self.GetWrapperMetadataName(),
          'wrapper_prefix' : self.wrapper_prefix,
          } )
function_tokens: def GenerateFixedFunctions ( self , out ) : out . Write ( """
  
  static PPB_GetInterface __real_PPBGetInterface;
  static PPP_GetInterface_Type __real_PPPGetInterface;
  
  void __set_real_%(wrapper_prefix)s_PPBGetInterface(PPB_GetInterface real) {
    __real_PPBGetInterface = real;
  }
  
  void __set_real_%(wrapper_prefix)s_PPPGetInterface(PPP_GetInterface_Type real) {
    __real_PPPGetInterface = real;
  }
  
  /* Map interface string -> wrapper metadata */
  static struct %(wrapper_struct)s *%(wrapper_prefix)sPPBShimIface(
      const char *name) {
    struct %(wrapper_struct)s **next = s_ppb_wrappers;
    while (*next != NULL) {
      if (mystrcmp(name, (*next)->iface_macro) == 0) return *next;
      ++next;
    }
    return NULL;
  }
  
  /* Map interface string -> wrapper metadata */
  static struct %(wrapper_struct)s *%(wrapper_prefix)sPPPShimIface(
      const char *name) {
    struct %(wrapper_struct)s **next = s_ppp_wrappers;
    while (*next != NULL) {
      if (mystrcmp(name, (*next)->iface_macro) == 0) return *next;
      ++next;
    }
    return NULL;
  }
  
  const void *__%(wrapper_prefix)s_PPBGetInterface(const char *name) {
    struct %(wrapper_struct)s *wrapper = %(wrapper_prefix)sPPBShimIface(name);
    if (wrapper == NULL) {
      /* We did not generate a wrapper for this, so return the real interface. */
      return (*__real_PPBGetInterface)(name);
    }
  
    /* Initialize the real_iface if it hasn't been. The wrapper depends on it. */
    if (wrapper->real_iface == NULL) {
      const void *iface = (*__real_PPBGetInterface)(name);
      if (NULL == iface) return NULL;
      wrapper->real_iface = iface;
    }
  
    if (wrapper->wrapped_iface) {
      return wrapper->wrapped_iface;
    } else {
      return wrapper->real_iface;
    }
  }
  
  const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
    struct %(wrapper_struct)s *wrapper = %(wrapper_prefix)sPPPShimIface(name);
    if (wrapper == NULL) {
      /* We did not generate a wrapper for this, so return the real interface. */
      return (*__real_PPPGetInterface)(name);
    }
  
    /* Initialize the real_iface if it hasn't been. The wrapper depends on it. */
    if (wrapper->real_iface == NULL) {
      const void *iface = (*__real_PPPGetInterface)(name);
      if (NULL == iface) return NULL;
      wrapper->real_iface = iface;
    }
  
    if (wrapper->wrapped_iface) {
      return wrapper->wrapped_iface;
    } else {
      return wrapper->real_iface;
    }
  }
  """ % { 'wrapper_struct' : self . GetWrapperMetadataName ( ) , 'wrapper_prefix' : self . wrapper_prefix , } )