This file is indexed.

/usr/include/vdk2/vdk/vdkthread.h is in libvdk2-dev 2.4.0-5.3ubuntu1.

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
/*
 * ===========================
 * VDK Visual Development Kit
 * Version 0.6
 * Jan 1999
 * ===========================
 *
 * Copyright (C) 1999, Salmaso Raffaele
 * Developed by Salmaso Raffaele <r.salmaso@flashnet.it>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 */

#ifndef VDKTHREAD_H
#define VDKTHREAD_H

#include <pthread.h>

enum VDKMutexEnum {
    VDKMUTEX_OK = 0,
    VDKMUTEX_ERROR
};
/*!
  VDHThread states
 */
enum VDKThreadEnum {
    VDKTHREAD_IDLE = 1,
    VDKTHREAD_RUNNING,
    VDKTHREAD_STOPPED,
    VDKTHREAD_EXITED,
    VDKTHREAD_CANNOT_CREATE,
    VDKTHREAD_IS_YET_RUNNING
};

class VDKMutex {
private:
    pthread_mutex_t mutex;
public:
    VDKMutex ();
    ~VDKMutex ();
    VDKMutexEnum Wait (long time = 0);
    VDKMutexEnum Release ();
    VDKMutexEnum Lock ();
};

/*!
  \class VDKThread
  \brief 
  This class provides a simple thread implementation Actually is supported only POSIX THREAD.
  
  It is possible to use a VDKThread in two way:
  \par via subclassing: if you derive a new class from VDKThread, you have to override the
  virtual method "virtual void Execute ();" to do what you want

  \code
  class NewClass : public VDKThread {
  protected:
    void Execute () {
      // my code
    }
  public:
    NewClass ();
    ~NewsClass ();
  }
  //...
  NewClass thread;
  thread.Start();
  \endcode

  \par passing a pointer to function when calling "Start ( (void *) func);"

  \code
  void * func () {}
  ...
  VDKThread thread;
  thread.Start ((void *) func);
  \endcode
 */
class VDKThread {
protected:
    pthread_t id;
    /*!
      Exit from the thread
     */
    void Exit (void * status = 0);
    static void * EntryPoint (void * arg);
    virtual void Execute ();
public:
    VDKThread ();
    virtual ~VDKThread ();
    /*!
      Start the thread.
     */
    VDKThreadEnum Start (void * = NULL);
    /*!
      Stops executing thread (command from other threads).
     */
    VDKThreadEnum Stop ();
    /*!
      Wait until the thread is terminated (it is used from other threads).
     */
    void * Wait ();
    /*!
      Store thread status.
     */
    VDKThreadEnum state;
    /*!
      Return the thread ID.
     */
    unsigned int GetID () {return (unsigned long) id;};
};

#endif