This file is indexed.

/usr/include/sipxtapi/ps/PsHookswTask.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
//  
// Copyright (C) 2006 SIPez LLC. 
// Licensed to SIPfoundry under a Contributor Agreement. 
//
// 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 _PsHookswTask_h_
#define _PsHookswTask_h_

// SYSTEM INCLUDES

// APPLICATION INCLUDES
#include "os/OsMsgQ.h"
#include "os/OsRWMutex.h"
#include "os/OsServerTask.h"
#include "os/OsTime.h"
#include "ps/PsMsg.h"
#include "ps/PsHookswDev.h"

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

// FORWARD DECLARATIONS
class OsEventMsg;
class OsQueuedEvent;
class OsTimer;

//:Task responsible for managing the phone hookswitch
class PsHookswTask : public OsServerTask
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:

   enum HookswitchState
   {
      ON_HOOK,        // The handset is on hook
      OFF_HOOK        // The handset is off hook
   };

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

   static PsHookswTask* getHookswTask(void);
     //:Return a pointer to the Hooksw task, creating it if necessary

   virtual
   ~PsHookswTask();
     //:Destructor

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

   virtual OsStatus postEvent(const int msg, void* source,
                              const int hookswState,
                              const OsTime& rTimeout=OsTime::OS_INFINITY);
     //:Create a hookswitch message and post it to the Hookswitch task
     // Return the result of the message send operation.

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

   virtual const int getHookswitchState(void);
     //:Return the hookswitch state

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

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

   PsHookswTask();
     //:Constructor (called only indirectly via getHookswTask())
     // 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.

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

   enum DebounceState
   {
      WAIT_FOR_INTR,
      SHORT_DEBOUNCE,
      LONG_DEBOUNCE
   };

   virtual UtlBoolean handleMessage(OsMsg& rMsg);
     //:Handle an incoming message
     // Return TRUE if the message was handled, otherwise FALSE.

   virtual UtlBoolean handleEventMessage(const OsEventMsg& rMsg);
     //:Handle an incoming event message (timer expiration) 
     // Return TRUE if the message was handled, otherwise FALSE.
     // A write lock should be acquired before calling this method.

   virtual UtlBoolean handlePhoneMessage(const PsMsg& rMsg);
     //:Handle an incoming phone message (HOOKSW_OFF or HOOKSW_ON)
     // Return TRUE if the message was handled, otherwise FALSE.
     // A write lock should be acquired before calling this method.

   virtual void startDebounceTimer(void);
     //:Start the debounce timer for the hookswitch

   virtual int readHwHookswState(void);
     //:Read the hookswitch state from the hardware

   OsRWMutex    mMutex;       // mutex for synchonizing access to data
   int          mHookswState; // hookswitch state
   PsHookswDev* mpHookswDev;  // hookswitch device
   int          mDebounceState;
   int          mDebounceTicks;
   int          mDebounceHookswState;
   OsTimer*     mpTimer;      // timer used to debounce the hookswitch
   OsQueuedEvent* mpTimerEvent; // event signaled when the timer expires

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

   PsHookswTask(const PsHookswTask& rPsHookswTask);
     //:Copy constructor (not implemented for this task)

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

};

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

#endif  // _PsHookswTask_h_