comimpl.xsl revision 2c7402dd06f73977076fdbc86bb9f1c0c2be17f9
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync<xsl:stylesheet version = '1.0'
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync extension-element-prefixes="exsl">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync XSLT stylesheet that generates COM C++ classes implementing
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync interfaces described in VirtualBox.xidl.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync For now we generate implementation for events, as they are
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync rather trivial container classes for their read-only attributes.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync Further extension to other interfaces is possible and anticipated.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync Copyright (C) 2010 Oracle Corporation
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync This file is part of VirtualBox Open Source Edition (OSE), as
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync available from http://www.virtualbox.org. This file is free software;
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync you can redistribute it and/or modify it under the terms of the GNU
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync General Public License (GPL) as published by the Free Software
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync method="text"
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync version="1.0"
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync encoding="utf-8"
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync indent="no"/>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync<xsl:include href="../webservice/websrv-shared.inc.xsl" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync<!-- $G_kind contains what kind of COM class implementation we generate -->
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync<xsl:variable name="G_xsltFilename" select="'autogen.xsl'" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync<xsl:template name="fileheader">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:param name="name" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:text>/**
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * Copyright (C) 2010 Oracle Corporation
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * available from http://www.virtualbox.org. This file is free software;
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * you can redistribute it and/or modify it under the terms of the GNU
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * General Public License (GPL) as published by the Free Software
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:value-of select="concat(' * ',$name)"/>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * DO NOT EDIT! This is a generated file.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync * Generated from: src/VBox/Main/idl/VirtualBox.xidl (VirtualBox's interface definitions in XML)
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync</xsl:template>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync<xsl:template name="genComEntry">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:param name="name" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:variable name="extends">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:value-of select="//interface[@name=$name]/@extends" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:variable>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:value-of select="concat(' COM_INTERFACE_ENTRY(', $name, ') ')" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:choose>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:when test="$extends='$unknown'">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:value-of select=" ' COM_INTERFACE_ENTRY(IDispatch) '" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:when>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:when test="//interface[@name=$extends]">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:call-template name="genComEntry">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:with-param name="name" select="$extends" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:call-template>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:when>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:otherwise>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:call-template name="fatalError">
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync <xsl:with-param name="msg" select="concat('No idea how to process it: ', $extends)" />
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:call-template>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:otherwise>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync </xsl:choose>
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync</xsl:template>
<xsl:value-of select="concat('NS_IMPL_THREADSAFE_ISUPPORTS',$depth,'_CI(', $impl, ', ', $name, $parents, ', IEvent) ')" />
<xsl:value-of select="concat(' STDMETHOD(COMGETTER(', $capsName,'))(',$pTypeOut, ' ', $pName,') { ')" />
return mEvent.createObject();
<xsl:value-of select=" ' obj.createObject(); '"/>
<xsl:with-param name="name" select="'VBoxEvents.cpp'" />
<xsl:value-of select="'#include "EventImpl.h" '" />