This file is indexed.

/usr/share/idl/thunderbird-11.0.1/nsIAutoSyncManager.idl is in thunderbird-dev 11.0.1+build1-0ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is mozilla.org code.
 *
 * The Initial Developer of the Original Code is the Mozilla Foundation.
 * Portions created by the Initial Developer are Copyright (C) 2008
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *  Emre Birol  <ebirol@gmail.com> (Original Author)
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */
 
#include "nsISupports.idl"

interface nsIAutoSyncMsgStrategy;
interface nsIAutoSyncFolderStrategy;
interface nsIMsgDBHdr;
interface nsIAutoSyncState;
interface nsIAutoSyncMgrListener;
interface nsIMsgFolder;
interface nsIMsgAccount;

[scriptable, uuid(41ec36a7-1a53-4ca3-b698-dca6452a8761)] 
interface nsIAutoSyncMgrListener : nsISupports {

  /**
   * Queue types
   */
  const long PriorityQueue = 1;
  const long UpdateQueue = 2;
  const long DiscoveryQueue = 3;

  /**
   * It is called on the listener when a new folder is added into
   * the queue
   *
   * @param aQType type of the queue
   * @param aFolder folder that is added into the queue
   */
  void onFolderAddedIntoQ(in long aQType, in nsIMsgFolder aFolder);
  
  /**
   * It is called on the listener when a folder is removed from
   * the queue
   *
   * @param aQType type of the queue
   * @param aFolder folder that is removed from the queue
   */
  void onFolderRemovedFromQ(in long aQType, in nsIMsgFolder aFolder);
  
  /**
   * It is called on the listener when a message download is successfully started
   *
   * @param aFolder folder in which the download is started 
   * @param aNumberOfMessages number of the messages that will be downloaded 
   * @param aTotalPending  total number of messages waiting to be downloaded 
   */
  void onDownloadStarted(in nsIMsgFolder aFolder, in unsigned long aNumberOfMessages, 
                         in unsigned long aTotalPending);
  /**
   * It is called on the listener when a message download on the given folder 
   * is completed
   */
  void onDownloadCompleted(in nsIMsgFolder aFolder);
  
  /**
   * It is called on the listener when an error occurs during the message download
   */
  void onDownloadError(in nsIMsgFolder aFolder);
  
  /*
   * Auto-Sync manager is running or waiting for idle 
   */
  void onStateChanged(in boolean aRunning);
  
  /**
   * It is called on the listener after the auto-sync manager starts to process 
   * existing headers of the given folder to find missing message bodies
   * (mostly for debugging purposes)
   */
  void onDiscoveryQProcessed(in nsIMsgFolder aFolder, in unsigned long aNumberOfHdrsProcessed, 
                             in unsigned long aLeftToProcess);
  
  /**
   * It is called on the listener after the auto-sync manager updates the given folder 
   * (mostly for debugging purposes)
   */
  void onAutoSyncInitiated(in nsIMsgFolder aFolder);
};


[scriptable, uuid(7fe0b48e-f5d8-4747-beb7-888c9cced3a5)]
interface nsIAutoSyncManager : nsISupports {

  /** 
   * Download models
   */
  const long dmParallel = 0;
  const long dmChained = 1;

  /**
   * Suggested minimum grouping size in bytes for message downloads.
   * Setting this attribute to 0 resets its value to the 
   * hardcoded default.
   */
  attribute unsigned long groupSize;

  /**
   * Active strategy function to prioritize
   * messages in the download queue
   */
  attribute nsIAutoSyncMsgStrategy msgStrategy;

  /**
   * Active strategy function to prioritize
   * folders in the download queue
   */
  attribute nsIAutoSyncFolderStrategy folderStrategy;

  /**
   * Adds a listener to notify about auto-sync events
   */
  void addListener(in nsIAutoSyncMgrListener aListener);
  
  /**
   * Removes the listener from notification list
   */
  void removeListener(in nsIAutoSyncMgrListener aListener);
    
  /**
   * Tests the given message to make sure that whether 
   * it fits the download criteria or not
   */
  boolean doesMsgFitDownloadCriteria(in nsIMsgDBHdr aMsgHdr);
  
  /**
   * Called by the nsAutoSyncState object when the download
   * queue is changed. Given interface is already addref'd.
   */
  void onDownloadQChanged(in nsIAutoSyncState aAutoSyncStateObj);
  
  /**
   * Called by the nsAutoSyncState object when the download
   * is started. Given interface is already addref'd.
   */
  void onDownloadStarted(in nsIAutoSyncState aAutoSyncStateObj, in nsresult aStartCode);
  
  /**
   * Called by the nsAutoSyncState object when the download
   * completed. Given interface is already addref'd.
   */
  void onDownloadCompleted(in nsIAutoSyncState aAutoSyncStateObj, in nsresult aExitCode);
  
  /**
   * Number of elements in the discovery queue.
   * @see nsAutoSyncManager.h for details
   */
  readonly attribute unsigned long discoveryQLength;
  
  /**
   * Number of elements in the update queue.
   * @see nsAutoSyncManager.h for details
   */
  readonly attribute unsigned long updateQLength;
  
  /**
   * Number of elements in the download queue (a.k.a priority queue).
   * @see nsAutoSyncManager.h for details
   */
  readonly attribute unsigned long downloadQLength;

  /**
   * Active download model; Chained (serial), or Parallel
   */
  attribute long downloadModel;

  /**
   * The imap folder corresponding to aAutoSyncState has had a message
   * added to it. Autosync may want to add this folder to the update q.
   *
   * @param aAutoSyncState state obj for folder needing updating
   */
  void onFolderHasPendingMsgs(in nsIAutoSyncState aAutoSyncState);

  /// Pause autosync (e.g., we're downloading for offline).
  void pause();
  
  /// Resume normal autosync activities (e.g., we've come back online).
  void resume();
};

%{C++
#define NS_AUTOSYNCMANAGER_CID  \
{ /* C358C568-47B2-42b2-8146-3C0F8D1FAD6E */  \
  0xc358c568, 0x47b2, 0x42b2,                 \
  { 0x81, 0x46, 0x3c, 0xf, 0x8d, 0x1f, 0xad, 0x6e }}
#define NS_AUTOSYNCMANAGER_CLASSNAME \
  "Auto-Sync Manager"
#define NS_AUTOSYNCMANAGER_CONTRACTID \
  "@mozilla.org/imap/autosyncmgr;1"
%}