VirtualBox

Changeset 47650 in vbox


Ignore:
Timestamp:
Aug 9, 2013 2:27:21 PM (11 years ago)
Author:
vboxsync
Message:

Main/idl/apiwrap-server: add support for providing hints to the wrapper generation, we'll sporadically need to get at the AutoCaller object so that we can call uninit().

Location:
trunk/src/VBox/Main
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/idl/apiwrap-server.xsl

    r45518 r47650  
    152152    <xsl:value-of select="concat('#define LOG_GROUP_MAIN_OVERRIDE LOG_GROUP_MAIN_', translate(substring(@name, 2), $G_lowerCase, $G_upperCase), '&#10;&#10;')"/>
    153153    <xsl:value-of select="concat('#include &quot;', substring(@name, 2), 'Wrap.h&quot;&#10;')"/>
    154     <xsl:text>#include "AutoCaller.h"
    155 #include "Logging.h"
     154    <xsl:text>#include "Logging.h"
    156155
    157156</xsl:text>
     
    174173    <xsl:param name="str"/>
    175174    <xsl:value-of select="translate($str, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_', '                                                               ')"/>
     175</xsl:template>
     176
     177<xsl:template name="checkoption">
     178    <xsl:param name="optionlist"/>
     179    <xsl:param name="option"/>
     180    <xsl:value-of select="string-length($option) > 0 and contains(concat(',', translate($optionlist, ' ', ''), ','), concat(',', $option, ','))"/>
    176181</xsl:template>
    177182
     
    662667
    663668    <xsl:value-of select="concat('    virtual HRESULT get', $attrbasename, '(')"/>
     669    <xsl:variable name="passAutoCaller">
     670        <xsl:call-template name="checkoption">
     671            <xsl:with-param name="optionlist" select="@wrap-hint-server"/>
     672            <xsl:with-param name="option" select="'passcaller'"/>
     673        </xsl:call-template>
     674    </xsl:variable>
     675    <xsl:if test="$passAutoCaller = 'true'">
     676        <xsl:text>AutoCaller &amp;aAutoCaller, </xsl:text>
     677    </xsl:if>
    664678    <xsl:apply-templates select="@type" mode="wrapped">
    665679        <xsl:with-param name="dir" select="'out'"/>
     
    670684    <xsl:if test="not(@readonly) or @readonly!='yes'">
    671685        <xsl:value-of select="concat('    virtual HRESULT set', $attrbasename, '(')"/>
     686        <xsl:if test="$passAutoCaller = 'true'">
     687            <xsl:text>AutoCaller &amp;aAutoCaller, </xsl:text>
     688        </xsl:if>
    672689        <xsl:apply-templates select="@type" mode="wrapped">
    673690            <xsl:with-param name="dir" select="'in'"/>
     
    722739</xsl:text>
    723740    <xsl:value-of select="concat('        hrc = get', $attrbasename, '(')"/>
     741    <xsl:variable name="passAutoCaller">
     742        <xsl:call-template name="checkoption">
     743            <xsl:with-param name="optionlist" select="@wrap-hint-server"/>
     744            <xsl:with-param name="option" select="'passcaller'"/>
     745        </xsl:call-template>
     746    </xsl:variable>
     747    <xsl:if test="$passAutoCaller = 'true'">
     748        <xsl:text>autoCaller, </xsl:text>
     749    </xsl:if>
    724750    <xsl:apply-templates select="@type" mode="paramvalconversion">
    725751        <xsl:with-param name="dir" select="'out'"/>
     
    781807</xsl:text>
    782808        <xsl:value-of select="concat('        hrc = set', $attrbasename, '(')"/>
     809        <xsl:if test="$passAutoCaller = 'true'">
     810            <xsl:text>autoCaller, </xsl:text>
     811        </xsl:if>
    783812        <xsl:apply-templates select="@type" mode="paramvalconversion">
    784813            <xsl:with-param name="dir" select="'in'"/>
     
    895924    </xsl:call-template>
    896925    <xsl:text>(</xsl:text>
     926    <xsl:variable name="passAutoCaller">
     927        <xsl:call-template name="checkoption">
     928            <xsl:with-param name="optionlist" select="@wrap-hint-server"/>
     929            <xsl:with-param name="option" select="'passcaller'"/>
     930        </xsl:call-template>
     931    </xsl:variable>
     932    <xsl:if test="$passAutoCaller = 'true'">
     933        <xsl:text>AutoCaller &amp;aAutoCaller</xsl:text>
     934        <xsl:if test="count(param) > 0">
     935            <xsl:text>,
     936                     </xsl:text>
     937            <xsl:value-of select="$methodindent"/>
     938        </xsl:if>
     939    </xsl:if>
    897940    <xsl:for-each select="param">
    898941        <xsl:apply-templates select="@type" mode="wrapped">
     
    9851028</xsl:text>
    9861029    <xsl:value-of select="concat('        hrc = ', @name, '(')"/>
     1030    <xsl:variable name="passAutoCaller">
     1031        <xsl:call-template name="checkoption">
     1032            <xsl:with-param name="optionlist" select="@wrap-hint-server"/>
     1033            <xsl:with-param name="option" select="'passcaller'"/>
     1034        </xsl:call-template>
     1035    </xsl:variable>
     1036    <xsl:if test="$passAutoCaller = 'true'">
     1037        <xsl:text>autoCaller</xsl:text>
     1038        <xsl:if test="count(param) > 0">
     1039            <xsl:text>,
     1040               </xsl:text>
     1041            <xsl:value-of select="$methodindent"/>
     1042        </xsl:if>
     1043    </xsl:if>
    9871044    <xsl:for-each select="param">
    9881045        <xsl:apply-templates select="@type" mode="paramvalconversion">
  • trunk/src/VBox/Main/include/Wrapper.h

    r45518 r47650  
    2424#include <VBox/com/ptr.h>
    2525#include <VBox/com/array.h>
     26
     27#include "AutoCaller.h"
     28
    2629
    2730/**
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette