VirtualBox

source: vbox/trunk/src/VBox/Main/idl/xpidl_iid.xsl@ 63239

Last change on this file since 63239 was 62486, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.3 KB
Line 
1<?xml version="1.0"?>
2<!-- $Id: xpidl_iid.xsl 62486 2016-07-22 18:37:16Z vboxsync $ -->
3
4<!--
5 * A template to generate a header file containing IIDs for XPCOM
6 * from the generic interface definition expressed in XML.
7
8 Copyright (C) 2006-2016 Oracle Corporation
9
10 This file is part of VirtualBox Open Source Edition (OSE), as
11 available from http://www.virtualbox.org. This file is free software;
12 you can redistribute it and/or modify it under the terms of the GNU
13 General Public License (GPL) as published by the Free Software
14 Foundation, in version 2 as it comes in the "COPYING" file of the
15 VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17-->
18
19<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
20<xsl:output method="text"/>
21
22<xsl:strip-space elements="*"/>
23
24<!--
25// templates
26/////////////////////////////////////////////////////////////////////////////
27-->
28
29
30<!--
31 * not explicitly matched elements and attributes
32-->
33<xsl:template match="*"/>
34
35
36<!--
37 * header
38-->
39<xsl:template match="/idl">
40 <xsl:text>
41/*
42 * DO NOT EDIT! This is a generated file.
43 *
44 * XPCOM C definitions for VirtualBox Main API (IIDs for COM interfaces)
45 * generated from XIDL (XML interface definition).
46 *
47 * Source : src/VBox/Main/idl/VirtualBox.xidl
48 * Generator : src/VBox/Main/idl/xpidl_iid.xsl
49 */
50
51#ifndef nsID_h__
52struct nsID
53{
54 unsigned int m0;
55 unsigned short m1;
56 unsigned short m2;
57 unsigned char m3[8];
58};
59
60typedef struct nsID nsID;
61typedef struct nsID nsIID;
62typedef struct nsID nsCID;
63#endif /* nsID_h__ */
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
69</xsl:text>
70 <xsl:apply-templates/>
71 <xsl:text>
72
73#ifdef __cplusplus
74}
75#endif
76
77</xsl:text>
78</xsl:template>
79
80
81<!--
82 * ignore all |if|s except those for XPIDL target
83-->
84<xsl:template match="if">
85 <xsl:if test="@target='xpidl'">
86 <xsl:apply-templates/>
87 </xsl:if>
88</xsl:template>
89
90
91<!--
92 * libraries
93-->
94<xsl:template match="library">
95 <xsl:apply-templates select="if | interface"/>
96 <xsl:apply-templates select="module"/>
97</xsl:template>
98
99
100<!--
101 * interfaces
102-->
103<xsl:template match="interface">
104 <xsl:text>const nsID IID_</xsl:text>
105 <xsl:value-of select="@name"/>
106 <xsl:text> = {&#x0A;</xsl:text>
107 <xsl:text> 0x</xsl:text><xsl:value-of select="substring(@uuid,1,8)"/>
108 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,10,4)"/>
109 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,15,4)"/>
110 <xsl:text>, \&#x0A; </xsl:text>
111 <xsl:text>{ 0x</xsl:text><xsl:value-of select="substring(@uuid,20,2)"/>
112 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,22,2)"/>
113 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,25,2)"/>
114 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,27,2)"/>
115 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,29,2)"/>
116 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,31,2)"/>
117 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,33,2)"/>
118 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,35,2)"/>
119 <xsl:text> } \&#x0A;};&#x0A;&#x0A;</xsl:text>
120</xsl:template>
121
122
123<!--
124 * modules
125-->
126<xsl:template match="module">
127 <xsl:apply-templates select="class"/>
128</xsl:template>
129
130
131<!--
132 * co-classes
133-->
134<xsl:template match="module/class">
135 <xsl:text>const nsCID CLSID_</xsl:text>
136 <xsl:value-of select="@name"/>
137 <xsl:text> = {&#x0A;</xsl:text>
138 <xsl:text> 0x</xsl:text><xsl:value-of select="substring(@uuid,1,8)"/>
139 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,10,4)"/>
140 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,15,4)"/>
141 <xsl:text>, \&#x0A; </xsl:text>
142 <xsl:text>{ 0x</xsl:text><xsl:value-of select="substring(@uuid,20,2)"/>
143 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,22,2)"/>
144 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,25,2)"/>
145 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,27,2)"/>
146 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,29,2)"/>
147 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,31,2)"/>
148 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,33,2)"/>
149 <xsl:text>, 0x</xsl:text><xsl:value-of select="substring(@uuid,35,2)"/>
150 <xsl:text> } \&#x0A;};&#x0A;&#x0A;</xsl:text>
151</xsl:template>
152
153</xsl:stylesheet>
154
Note: See TracBrowser for help on using the repository browser.

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