/gecko_sdk/idl/nsISupportsPrimitives.idl
IDL | 304 lines | 126 code | 43 blank | 135 comment | 0 complexity | 33c0ae4b7b453ae6b7749290621c02a2 MD5 | raw file
1/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2/* ***** BEGIN LICENSE BLOCK ***** 3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * http://www.mozilla.org/MPL/ 9 * 10 * Software distributed under the License is distributed on an "AS IS" basis, 11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 12 * for the specific language governing rights and limitations under the 13 * License. 14 * 15 * The Original Code is mozilla.org code. 16 * 17 * The Initial Developer of the Original Code is 18 * Netscape Communications Corporation. 19 * Portions created by the Initial Developer are Copyright (C) 1998 20 * the Initial Developer. All Rights Reserved. 21 * 22 * Contributor(s): 23 * Dan Rosen <dr@netscape.com> 24 * 25 * Alternatively, the contents of this file may be used under the terms of 26 * either of the GNU General Public License Version 2 or later (the "GPL"), 27 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 28 * in which case the provisions of the GPL or the LGPL are applicable instead 29 * of those above. If you wish to allow use of your version of this file only 30 * under the terms of either the GPL or the LGPL, and not to allow others to 31 * use your version of this file under the terms of the MPL, indicate your 32 * decision by deleting the provisions above and replace them with the notice 33 * and other provisions required by the GPL or the LGPL. If you do not delete 34 * the provisions above, a recipient may use your version of this file under 35 * the terms of any one of the MPL, the GPL or the LGPL. 36 * 37 * ***** END LICENSE BLOCK ***** */ 38 39/* nsISupports wrappers for single primitive pieces of data. */ 40 41#include "nsISupports.idl" 42 43/** 44 * Primitive base interface. 45 * 46 * These first three are pointer types and do data copying 47 * using the nsIMemory. Be careful! 48 * 49 * @status FROZEN 50 */ 51 52[scriptable, uuid(d0d4b136-1dd1-11b2-9371-f0727ef827c0)] 53interface nsISupportsPrimitive : nsISupports 54{ 55 const unsigned short TYPE_ID = 1; 56 const unsigned short TYPE_CSTRING = 2; 57 const unsigned short TYPE_STRING = 3; 58 const unsigned short TYPE_PRBOOL = 4; 59 const unsigned short TYPE_PRUINT8 = 5; 60 const unsigned short TYPE_PRUINT16 = 6; 61 const unsigned short TYPE_PRUINT32 = 7; 62 const unsigned short TYPE_PRUINT64 = 8; 63 const unsigned short TYPE_PRTIME = 9; 64 const unsigned short TYPE_CHAR = 10; 65 const unsigned short TYPE_PRINT16 = 11; 66 const unsigned short TYPE_PRINT32 = 12; 67 const unsigned short TYPE_PRINT64 = 13; 68 const unsigned short TYPE_FLOAT = 14; 69 const unsigned short TYPE_DOUBLE = 15; 70 const unsigned short TYPE_VOID = 16; 71 const unsigned short TYPE_INTERFACE_POINTER = 17; 72 73 readonly attribute unsigned short type; 74}; 75 76/** 77 * Scriptable storage for nsID structures 78 * 79 * @status FROZEN 80 */ 81 82[scriptable, uuid(d18290a0-4a1c-11d3-9890-006008962422)] 83interface nsISupportsID : nsISupportsPrimitive 84{ 85 attribute nsIDPtr data; 86 string toString(); 87}; 88 89/** 90 * Scriptable storage for ASCII strings 91 * 92 * @status FROZEN 93 */ 94 95[scriptable, uuid(d65ff270-4a1c-11d3-9890-006008962422)] 96interface nsISupportsCString : nsISupportsPrimitive 97{ 98 attribute ACString data; 99 string toString(); 100}; 101 102/** 103 * Scriptable storage for Unicode strings 104 * 105 * @status FROZEN 106 */ 107 108[scriptable, uuid(d79dc970-4a1c-11d3-9890-006008962422)] 109interface nsISupportsString : nsISupportsPrimitive 110{ 111 attribute AString data; 112 wstring toString(); 113}; 114 115/** 116 * The rest are truly primitive and are passed by value 117 */ 118 119/** 120 * Scriptable storage for booleans 121 * 122 * @status FROZEN 123 */ 124 125[scriptable, uuid(ddc3b490-4a1c-11d3-9890-006008962422)] 126interface nsISupportsPRBool : nsISupportsPrimitive 127{ 128 attribute PRBool data; 129 string toString(); 130}; 131 132/** 133 * Scriptable storage for 8-bit integers 134 * 135 * @status FROZEN 136 */ 137 138[scriptable, uuid(dec2e4e0-4a1c-11d3-9890-006008962422)] 139interface nsISupportsPRUint8 : nsISupportsPrimitive 140{ 141 attribute PRUint8 data; 142 string toString(); 143}; 144 145/** 146 * Scriptable storage for unsigned 16-bit integers 147 * 148 * @status FROZEN 149 */ 150 151[scriptable, uuid(dfacb090-4a1c-11d3-9890-006008962422)] 152interface nsISupportsPRUint16 : nsISupportsPrimitive 153{ 154 attribute PRUint16 data; 155 string toString(); 156}; 157 158/** 159 * Scriptable storage for unsigned 32-bit integers 160 * 161 * @status FROZEN 162 */ 163 164[scriptable, uuid(e01dc470-4a1c-11d3-9890-006008962422)] 165interface nsISupportsPRUint32 : nsISupportsPrimitive 166{ 167 attribute PRUint32 data; 168 string toString(); 169}; 170 171/** 172 * Scriptable storage for 64-bit integers 173 * 174 * @status FROZEN 175 */ 176 177[scriptable, uuid(e13567c0-4a1c-11d3-9890-006008962422)] 178interface nsISupportsPRUint64 : nsISupportsPrimitive 179{ 180 attribute PRUint64 data; 181 string toString(); 182}; 183 184/** 185 * Scriptable storage for NSPR date/time values 186 * 187 * @status FROZEN 188 */ 189 190[scriptable, uuid(e2563630-4a1c-11d3-9890-006008962422)] 191interface nsISupportsPRTime : nsISupportsPrimitive 192{ 193 attribute PRTime data; 194 string toString(); 195}; 196 197/** 198 * Scriptable storage for single character values 199 * (often used to store an ASCII character) 200 * 201 * @status FROZEN 202 */ 203 204[scriptable, uuid(e2b05e40-4a1c-11d3-9890-006008962422)] 205interface nsISupportsChar : nsISupportsPrimitive 206{ 207 attribute char data; 208 string toString(); 209}; 210 211/** 212 * Scriptable storage for 16-bit integers 213 * 214 * @status FROZEN 215 */ 216 217[scriptable, uuid(e30d94b0-4a1c-11d3-9890-006008962422)] 218interface nsISupportsPRInt16 : nsISupportsPrimitive 219{ 220 attribute PRInt16 data; 221 string toString(); 222}; 223 224/** 225 * Scriptable storage for 32-bit integers 226 * 227 * @status FROZEN 228 */ 229 230[scriptable, uuid(e36c5250-4a1c-11d3-9890-006008962422)] 231interface nsISupportsPRInt32 : nsISupportsPrimitive 232{ 233 attribute PRInt32 data; 234 string toString(); 235}; 236 237/** 238 * Scriptable storage for 64-bit integers 239 * 240 * @status FROZEN 241 */ 242 243[scriptable, uuid(e3cb0ff0-4a1c-11d3-9890-006008962422)] 244interface nsISupportsPRInt64 : nsISupportsPrimitive 245{ 246 attribute PRInt64 data; 247 string toString(); 248}; 249 250/** 251 * Scriptable storage for floating point numbers 252 * 253 * @status FROZEN 254 */ 255 256[scriptable, uuid(abeaa390-4ac0-11d3-baea-00805f8a5dd7)] 257interface nsISupportsFloat : nsISupportsPrimitive 258{ 259 attribute float data; 260 string toString(); 261}; 262 263/** 264 * Scriptable storage for doubles 265 * 266 * @status FROZEN 267 */ 268 269[scriptable, uuid(b32523a0-4ac0-11d3-baea-00805f8a5dd7)] 270interface nsISupportsDouble : nsISupportsPrimitive 271{ 272 attribute double data; 273 string toString(); 274}; 275 276/** 277 * Scriptable storage for generic pointers 278 * 279 * @status FROZEN 280 */ 281 282[scriptable, uuid(464484f0-568d-11d3-baf8-00805f8a5dd7)] 283interface nsISupportsVoid : nsISupportsPrimitive 284{ 285 [noscript] attribute voidPtr data; 286 string toString(); 287}; 288 289/** 290 * Scriptable storage for other XPCOM objects 291 * 292 * @status FROZEN 293 */ 294 295[scriptable, uuid(995ea724-1dd1-11b2-9211-c21bdd3e7ed0)] 296interface nsISupportsInterfacePointer : nsISupportsPrimitive 297{ 298 attribute nsISupports data; 299 attribute nsIDPtr dataIID; 300 301 string toString(); 302}; 303 304