This file is indexed.

/usr/include/speech_tools/EST_TDeque.h is in libestools2.1-dev 1:2.1~release-6.

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
 /************************************************************************/
 /*                                                                      */
 /*                Centre for Speech Technology Research                 */
 /*                     University of Edinburgh, UK                      */
 /*                       Copyright (c) 1996,1997                        */
 /*                        All Rights Reserved.                          */
 /*                                                                      */
 /*  Permission is hereby granted, free of charge, to use and distribute */
 /*  this software and its documentation without restriction, including  */
 /*  without limitation the rights to use, copy, modify, merge, publish, */
 /*  distribute, sublicense, and/or sell copies of this work, and to     */
 /*  permit persons to whom this work is furnished to do so, subject to  */
 /*  the following conditions:                                           */
 /*   1. The code must retain the above copyright notice, this list of   */
 /*      conditions and the following disclaimer.                        */
 /*   2. Any modifications must be clearly marked as such.               */
 /*   3. Original authors' names are not deleted.                        */
 /*   4. The authors' names are not used to endorse or promote products  */
 /*      derived from this software without specific prior written       */
 /*      permission.                                                     */
 /*                                                                      */
 /*  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK       */
 /*  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING     */
 /*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT  */
 /*  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE    */
 /*  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES   */
 /*  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN  */
 /*  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,         */
 /*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF      */
 /*  THIS SOFTWARE.                                                      */
 /*                                                                      */
 /*************************************************************************/


#ifndef __EST_TDEQUE_H__
#define __EST_TDEQUE_H__

#include "EST_TVector.h"
#include "instantiate/EST_TDequeI.h"

/** Double ended queue.
  * 
  * @author Richard Caley <rjc@cstr.ed.ac.uk>
  * @version $Id: EST_TDeque.h,v 1.3 2006/07/19 21:52:12 awb Exp $
  */

template <class T>
class EST_TDeque {
private:
  EST_TVector<T> p_vector;
  int p_increment;
  int p_back;
  int p_front;

  // Make the structure bigger.
  void expand(void);

public:
  EST_TDeque(unsigned int capacity, unsigned int increment);
  EST_TDeque(unsigned int capacity);
  EST_TDeque(void);

  /// Used to fill empty spaces when possible.
  static const T *Filler;

  /// Empty it out.
  void clear(void);

  /// Is there anything to get?
  bool is_empty(void) const;

  /// print picture of state. Mostly useful for debugging.
  ostream &print(ostream &s) const;

  /**@name stack
    * 
    * An interface looking like a stack.
    */
  //@{
  void push(T &item);
  T &pop(void);
  T &nth(int i);
  //@}

  /**@name inverse stack
    * 
    * The other end as a stack.
    */
  //@{
  void back_push(T& item);
  T &back_pop(void);
  //@}

  /**@name queue
    * 
    * An interface looking like a queue.
    */
  //@{
  void add(T& item) { push(item); }
  T &next() { return back_pop(); }
  T &last() { return pop(); }
  //@}

  /**@name perl
    * 
    * For people who think in perl
    */
  //@{
  void unshift(T& item) { back_push(item); }
  T &shift() { return back_pop(); }
  //@}

  friend ostream& operator << (ostream &st, const EST_TDeque< T > &deq)
    {
        return deq.print(st);
    }
};

#endif