This file is indexed.

/usr/include/sipxtapi/ps/PsLampTask.h is in libsipxtapi-dev 3.3.0~test17-1.

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
//
// Copyright (C) 2004-2006 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004-2006 Pingtel Corp.  All rights reserved.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
///////////////////////////////////////////////////////////////////////////////

#ifndef _PsLampTask_h_
#define _PsLampTask_h_

// SYSTEM INCLUDES

// APPLICATION INCLUDES
#include "os/OsBSem.h"
#include "os/OsRWMutex.h"
#include "os/OsTask.h"
#include "ps/PsLampDev.h"
#include "ps/PsLampInfo.h"

// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS

//:Task responsible for managing the phone set lamps
class PsLampTask : public OsTask
{

/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:

/* ============================ CREATORS ================================== */

   static PsLampTask* getLampTask(void);
     //:Return a pointer to the Lamp task, creating it if necessary

   virtual
   ~PsLampTask();
     //:Destructor

/* ============================ MANIPULATORS ============================== */

   OsStatus init(const int maxLampIndex);
     //:Cause the Lamp task to (re)initialize itself
     // The task will allocate an array [0..maxLampIndex] of PsLampInfo
     // objects to hold lamp state.

   OsStatus setLampInfo(int index,
                        int lampId,
                        const char* lampName,
                        PsLampInfo::LampMode lampMode);
     //:Set the lamp information for the lamp designated by "index"
     // Returns OS_NOT_FOUND if the index is out of range.

   OsStatus setMode(int lampId, PsLampInfo::LampMode lampMode);
     //:Set the mode for the lamp indicated by lampId
     // Returns OS_NOT_FOUND if there is no lamp with that lampId.

   OsStatus setMode(const char* pLampName, PsLampInfo::LampMode lampMode);
     //:Set the mode for the lamp indicated by pLampName
     // Returns OS_NOT_FOUND if there is no lamp with that name.

/* ============================ ACCESSORS ================================= */

   const PsLampInfo& getLampInfo(const int index);
     //:Return the lamp information for the lamp designated by "index"

   int getMaxLampIndex(void) const;
     //:Returns the max index for the array of PsLampInfo objects

   OsStatus getMode(int lampId, PsLampInfo::LampMode& rMode);
     //:Get the current mode for the lamp designated by lampId
     // The mode is returned in the "rMode" variable. 
     // Returns OS_NOT_FOUND if there is no lamp with that lampId.

   OsStatus getMode(const char* pLampName, PsLampInfo::LampMode& rMode);
     //:Get the current mode for the lamp designated by pLampName
     // The mode is returned in the "rMode" variable. 
     // Returns OS_NOT_FOUND if there is no lamp with that name.

   OsStatus getName(int lampId, const char*& rpName);
     //:Returns the name for the lamp designated by lampId
     // The name is returned in the "rpName" variable. 
     // Returns OS_NOT_FOUND if there is no lamp with that lampId.

/* ============================ INQUIRY =================================== */

/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:

   PsLampTask();
     //:Constructor (called only indirectly via getLampTask())
     // We identify this as a protected (rather than a private) method so
     // that gcc doesn't complain that the class only defines a private
     // constructor and has no friends.

   int run(void* pArg);
     //:The body of the task.
     // Responsible for updating the lamps as needed.

/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:

   enum LampTaskConstants
   {
      TICK_PERIOD_MSECS = 50,
      FLASH_ON_TICKS    = 10,
      FLASH_OFF_TICKS   = 10,
      FLUTTER_ON_TICKS  = 1,
      FLUTTER_OFF_TICKS = 1,
      WINK_ON_TICKS     = 1,
      WINK_OFF_TICKS    = 19
   };
   
   void calculateLampModeAggregates(void);
     //:Calculate the lamp mode aggregates (the lamp IDs that are turned on 
     //:for each mode)

   void doCleanup(void);
     //:Release dynamically allocated storage
     // A write lock should be acquired before calling this method.

   int            mMaxLampIdx;       // max lamp index
   int            mModeTickMultiple; // common multiple for all tick modes
   OsRWMutex      mMutex;            // mutex for synchonizing access to data
   int            mTickCnt;          // current lamp tick count
   PsLampInfo*    mpLampInfo;        // ptr to an array of PsLampInfo objects
   PsLampDev*     mpLampDev;         // ptr to lamp device

                                     // Logical OR of lamps in various modes
   unsigned long  mModeBrokenFlutterLamps;  // Broken flutter mode lamps
   unsigned long  mModeFlashLamps;          // Flash mode lamps
   unsigned long  mModeFlutterLamps;        // Flutter mode lamps
   unsigned long  mModeSteadyLamps;         // Steady mode lamps
   unsigned long  mModeWinkLamps;           // Wink mode lamps

   unsigned long  mOnLamps;          // Lamps that are turned on

   // Static data members used to enforce Singleton behavior
   static PsLampTask* spInstance;    // pointer to the single instance of
                                     //  the PsLampTask class
   static OsBSem      sLock;         // semaphore used to ensure that there
                                     //  is only one instance of this class

   PsLampTask(const PsLampTask& rPsLampTask);
     //:Copy constructor (not implemented for this task)

   PsLampTask& operator=(const PsLampTask& rhs);
     //:Assignment operator (not implemented for this class)

};

/* ============================ INLINE METHODS ============================ */

#endif  // _PsLampTask_h_