Back to index

lightning-sunbird  0.9+nobinonly
nsIMsgSearchTerm.idl
Go to the documentation of this file.
00001 /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is Mozilla Communicator client code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 1998
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   Alec Flett <alecf@netscape.com>
00024  *
00025  * Alternatively, the contents of this file may be used under the terms of
00026  * either of the GNU General Public License Version 2 or later (the "GPL"),
00027  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00028  * in which case the provisions of the GPL or the LGPL are applicable instead
00029  * of those above. If you wish to allow use of your version of this file only
00030  * under the terms of either the GPL or the LGPL, and not to allow others to
00031  * use your version of this file under the terms of the MPL, indicate your
00032  * decision by deleting the provisions above and replace them with the notice
00033  * and other provisions required by the GPL or the LGPL. If you do not delete
00034  * the provisions above, a recipient may use your version of this file under
00035  * the terms of any one of the MPL, the GPL or the LGPL.
00036  *
00037  * ***** END LICENSE BLOCK ***** */
00038 
00039 #include "nsISupports.idl"
00040 #include "nsMsgSearchCore.idl"
00041 #include "nsIMsgSearchValue.idl"
00042 
00043 interface nsIMsgDBHdr;
00044 interface nsIMsgDatabase;
00045 interface nsIMsgSearchScopeTerm;
00046 
00047 native nsCStringRef(nsCString&);
00048 
00049 [scriptable, uuid(cde583fe-9add-4adb-9e1a-9cfe050d8a26)]
00050 interface nsIMsgSearchTerm : nsISupports {
00051     attribute nsMsgSearchAttribValue attrib;
00052     attribute nsMsgSearchOpValue op;
00053     attribute nsIMsgSearchValue value;
00054 
00055     attribute boolean booleanAnd;
00056     attribute string arbitraryHeader;
00057 
00058     attribute boolean beginsGrouping;
00059     attribute boolean endsGrouping;
00060 
00061     boolean matchRfc822String(in string aString, in string charset, in boolean charsetOverride);
00062     boolean matchRfc2047String(in string aString, in string charset, in boolean charsetOverride);
00063     boolean matchDate(in PRTime aTime);
00064     boolean matchStatus(in unsigned long aStatus);
00065     boolean matchPriority(in nsMsgPriorityValue priority);
00066     boolean matchAge(in PRTime days);
00067     boolean matchSize(in unsigned long size);
00068     boolean matchLabel(in nsMsgLabelValue aLabelValue);
00069     boolean matchJunkStatus(in string aJunkScore);
00070        
00071     boolean matchBody(in nsIMsgSearchScopeTerm scopeTerm,
00072                       in unsigned long offset,
00073                       in unsigned long length,
00074                       in string charset,
00075                       in nsIMsgDBHdr msg,
00076                       in nsIMsgDatabase db);
00077 
00078     // marking noscript because headers is a null-separated list of strings,
00079     // which is not scriptable
00080     [noscript]
00081     boolean matchArbitraryHeader(in nsIMsgSearchScopeTerm scopeTerm,
00082                                  in unsigned long offset,
00083                                  in unsigned long length,
00084                                  in string charset,
00085                                  in boolean charsetOverride,
00086                                  in nsIMsgDBHdr msg,
00087                                  in nsIMsgDatabase db,
00088                                  //[array, size_is(headerLength)] in string headers,
00089                                  in string headers,
00090                                  in unsigned long headerLength,
00091                                  in boolean forFilters);
00092                       
00093     readonly attribute boolean matchAllBeforeDeciding;
00094 
00095     readonly attribute ACString termAsString;
00096     boolean matchKeyword(in string keyword); // used for tag searches 
00097     attribute boolean matchAll;
00098 };
00099