00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include "nsISupports.idl"
00040
00041 interface nsIURI;
00042 interface nsIVariant;
00043
00044 [scriptable, uuid(63fe98e0-6889-4c2c-ac9f-703e4bc25027)]
00045 interface nsIAnnotationObserver : nsISupports
00046 {
00051 void onPageAnnotationSet(in nsIURI aPage, in AUTF8String aName);
00052 void onItemAnnotationSet(in long long aItemId, in AUTF8String aName);
00053
00059 void onPageAnnotationRemoved(in nsIURI aURI, in AUTF8String aName);
00060 void onItemAnnotationRemoved(in long long aItemId, in AUTF8String aName);
00061 };
00062
00063 [scriptable, uuid(ba249b58-346f-42a9-a393-203ae34ec6c4)]
00064 interface nsIAnnotationService : nsISupports
00065 {
00074
00075
00076 const unsigned short EXPIRE_SESSION = 0;
00077
00078
00079
00080
00081
00082
00083 const unsigned short EXPIRE_WEEKS = 2;
00084
00085
00086
00087
00088
00089
00090
00091 const unsigned short EXPIRE_MONTHS = 3;
00092
00093
00094
00095
00096
00097 const unsigned short EXPIRE_NEVER = 4;
00098
00099
00100
00101 const unsigned short EXPIRE_WITH_HISTORY = 5;
00102
00103
00104
00105 const unsigned short EXPIRE_DAYS = 6;
00106
00107
00108 const unsigned short TYPE_INT32 = 1;
00109 const unsigned short TYPE_DOUBLE = 2;
00110 const unsigned short TYPE_STRING = 3;
00111 const unsigned short TYPE_BINARY = 4;
00112 const unsigned short TYPE_INT64 = 5;
00113
00145 void setPageAnnotation(in nsIURI aURI, in AUTF8String aName,
00146 in nsIVariant aValue, in long aFlags,
00147 in unsigned short aExpiration);
00148 void setItemAnnotation(in long long aItemId, in AUTF8String aName,
00149 in nsIVariant aValue, in long aFlags,
00150 in unsigned short aExpiration);
00151
00152 [noscript] void setPageAnnotationString(in nsIURI aURI, in AUTF8String aName,
00153 in AString aValue, in long aFlags,
00154 in unsigned short aExpiration);
00155 [noscript] void setItemAnnotationString(in long long aItemId, in AUTF8String aName,
00156 in AString aValue, in long aFlags,
00157 in unsigned short aExpiration);
00158
00163 [noscript] void setPageAnnotationInt32(in nsIURI aURI, in AUTF8String aName,
00164 in long aValue, in long aFlags,
00165 in unsigned short aExpiration);
00166 [noscript] void setItemAnnotationInt32(in long long aItemId, in AUTF8String aName,
00167 in long aValue, in long aFlags,
00168 in unsigned short aExpiration);
00169
00174 [noscript] void setPageAnnotationInt64(in nsIURI aURI, in AUTF8String aName,
00175 in long long aValue, in long aFlags,
00176 in unsigned short aExpiration);
00177 [noscript] void setItemAnnotationInt64(in long long aItemId, in AUTF8String aName,
00178 in long long aValue, in long aFlags,
00179 in unsigned short aExpiration);
00180
00185 [noscript] void setPageAnnotationDouble(in nsIURI aURI, in AUTF8String aName,
00186 in double aValue, in long aFlags,
00187 in unsigned short aExpiration);
00188 [noscript] void setItemAnnotationDouble(in long long aItemId, in AUTF8String aName,
00189 in double aValue, in long aFlags,
00190 in unsigned short aExpiration);
00191
00192
00193
00194
00195 void setPageAnnotationBinary(in nsIURI aURI, in AUTF8String aName,
00196 [const,array,size_is(aDataLen)] in octet aData,
00197 in unsigned long aDataLen,
00198 in AUTF8String aMimeType,
00199 in long aFlags,
00200 in unsigned short aExpiration);
00201 void setItemAnnotationBinary(in long long aItemId, in AUTF8String aName,
00202 [const,array,size_is(aDataLen)] in octet aData,
00203 in unsigned long aDataLen,
00204 in AUTF8String aMimeType,
00205 in long aFlags,
00206 in unsigned short aExpiration);
00207
00217 nsIVariant getPageAnnotation(in nsIURI aURI, in AUTF8String aName);
00218 nsIVariant getItemAnnotation(in long long aItemId, in AUTF8String aName);
00219
00223 [noscript] AString getPageAnnotationString(in nsIURI aURI, in AUTF8String aName);
00224 [noscript] AString getItemAnnotationString(in long long aItemId, in AUTF8String aName);
00225
00229 [noscript] long getPageAnnotationInt32(in nsIURI aURI, in AUTF8String aName);
00230 [noscript] long getItemAnnotationInt32(in long long aItemId, in AUTF8String aName);
00231
00235 [noscript] long long getPageAnnotationInt64(in nsIURI aURI, in AUTF8String aName);
00236 [noscript] long long getItemAnnotationInt64(in long long aItemId, in AUTF8String aName);
00237
00241 [noscript] double getPageAnnotationDouble(in nsIURI aURI, in AUTF8String aName);
00242 [noscript] double getItemAnnotationDouble(in long long aItemId, in AUTF8String aName);
00243
00248 void getPageAnnotationBinary(in nsIURI aURI, in AUTF8String aName,
00249 [array,size_is(aDataLen)] out octet aData,
00250 out unsigned long aDataLen,
00251 out AUTF8String aMimeType);
00252 void getItemAnnotationBinary(in long long aItemId, in AUTF8String aName,
00253 [array,size_is(aDataLen)] out octet aData,
00254 out unsigned long aDataLen,
00255 out AUTF8String aMimeType);
00256
00268 void getPageAnnotationInfo(in nsIURI aURI,
00269 in AUTF8String aName,
00270 out PRInt32 aFlags,
00271 out unsigned short aExpiration,
00272 out AUTF8String aMimeType,
00273 out unsigned short aType);
00274 void getItemAnnotationInfo(in long long aItemId, in AUTF8String aName,
00275 out long aFlags, out unsigned short aExpiration,
00276 out AUTF8String aMimeType,
00277 out unsigned short aType);
00278
00290 PRUint16 getPageAnnotationType(in nsIURI aURI, in AUTF8String aName);
00291 PRUint16 getItemAnnotationType(in long long aItemId, in AUTF8String aName);
00292
00296 void getPagesWithAnnotation(in AUTF8String name,
00297 out unsigned long resultCount,
00298 [retval, array, size_is(resultCount)] out nsIURI results);
00299 void getItemsWithAnnotation(in AUTF8String name,
00300 out unsigned long resultCount,
00301 [retval, array, size_is(resultCount)] out long long results);
00302
00309 void getPageAnnotationNames(in nsIURI aURI, out unsigned long count,
00310 [retval, array, size_is(count)] out nsIVariant result);
00311 void getItemAnnotationNames(in long long aItemId, out unsigned long count,
00312 [retval, array, size_is(count)] out nsIVariant result);
00313
00317 boolean pageHasAnnotation(in nsIURI aURI, in AUTF8String aName);
00318 boolean itemHasAnnotation(in long long aItemId, in AUTF8String aName);
00319
00324 void removePageAnnotation(in nsIURI aURI, in AUTF8String aName);
00325 void removeItemAnnotation(in long long aItemId, in AUTF8String aName);
00326
00332 void removePageAnnotations(in nsIURI aURI);
00333 void removeItemAnnotations(in long long aItemId);
00334
00344 void copyPageAnnotations(in nsIURI aSourceURI, in nsIURI aDestURI,
00345 in boolean aOverwriteDest);
00346 void copyItemAnnotations(in long long aSourceItemId,
00347 in long long aDestItemId,
00348 in boolean aOverwriteDest);
00349
00354 void addObserver(in nsIAnnotationObserver aObserver);
00355
00356
00360 void removeObserver(in nsIAnnotationObserver aObserver);
00361
00369 nsIURI getAnnotationURI(in nsIURI aURI, in AUTF8String aName);
00370 };