/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** * This interface wraps an nsTArray so that we can pass arrays * back and forth between c++ and js (or via xpconnect generally). */ #include "nsISupports.idl" #include "MailNewsTypes2.idl" [scriptable, uuid(4aa3ed2e-5bb1-40b3-ad03-2f1cfef386c4)] interface nsIMsgKeyArray : nsISupports { /** * Get the key at the specified 0-based array index. * * @param aIndex 0-based index. * @returns key at the specified index. */ nsMsgKey getKeyAt(in long aIndex); readonly attribute unsigned long length; void setCapacity(in unsigned long aCapacity); /** * Adds a key to the end of the array * @param key to append to the array. */ void appendElement(in nsMsgKey aMsgKey); /** * Inserts a key into a previously sorted array * @param key to insert into the array. */ void insertElementSorted(in nsMsgKey aMsgKey); /** * Sort the array by key. */ void sort(); /** * Retrieves the entire array in such a way that xpconnect can easily * create a js array of the keys. * * @returns array of the keys */ void getArray(out unsigned long aCount, [array, size_is(aCount)] out nsMsgKey aKeys); };