This file is indexed.

/usr/include/libindi/indibase.h is in libindi-dev 0.9.7-0ubuntu4.

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
#ifndef INDIBASE_H
#define INDIBASE_H

#include "indiapi.h"
#include "indidevapi.h"

#define MAXRBUF 2048

/**
 * \namespace INDI
   \brief Namespace to encapsulate INDI client, drivers, and mediator classes.
   Developers can subclass the base devices class to implement device specific functionality. This ensures interoperability and consistency among devices within the same family
   and reduces code overhead.

   <ul>
   <li>BaseClient: Base class for INDI clients. By subclassing BaseClient, client can easily connect to INDI server
   and handle device communication, command, and notifcation.</li>
   <li>BaseMediator: Abstract class to provide interface for event notifications in INDI::BaseClient.</li>
   <li>BaseDriver: Base class for all INDI virtual driver as handled and stored in INDI::BaseClient.</li>
   <li>DefaultDriver: INDI::BaseDriver with extended functionality such as debug, simulation, and configuration support.
       It is \e only used by drivers directly, it cannot be used by clients.</li>
   <li>FilterInterface: Basic interface for filter wheels functions.</li>
   <li>GuiderInterface: Basic interface for guider (ST4) port functions.</li>
   <li>CCD: Base class for CCD drivers. Provides basic support for single chip CCD and CCDs with a guide head as well.</li>
   <li>Telescope: Base class for telescope drivers.</li>
   <li>FilterWheel: Base class for Filter Wheels. It implements the FilterInterface.</li>
   <li>Focuser: Base class for focusers.</li>
   <li>USBDevice: Base class for USB devices for direct read/write/control over USB.</li>
   <li>Controller: Class to handle controller inputs like joysticks and gamepads.</li>
   <li>Logger: Class to handle debugging and logging of drivers.</li>
   </ul>
\author Jasem Mutlaq
\author Gerry Rozema
 */
namespace INDI
{
    class BaseMediator;
    class BaseClient;
    class BaseDevice;
    class DefaultDevice;
    class FilterInterface;
    class GuiderInterface;
    class CCD;
    class Telescope;
    class FilterWheel;
    class Focuser;
    class USBDevice;
    class Property;
    class Controller;
    class Logger;
}

/*! INDI property type */
typedef enum
{
    INDI_NUMBER, /*!< INumberVectorProperty. */
    INDI_SWITCH, /*!< ISwitchVectorProperty. */
    INDI_TEXT,   /*!< ITextVectorProperty. */
    INDI_LIGHT,  /*!< ILightVectorProperty. */
    INDI_BLOB,    /*!< IBLOBVectorProperty. */
    INDI_UNKNOWN
} INDI_TYPE;


/**
 * \class INDI::BaseMediator
   \brief Meditates event notification as generated by driver and passed to clients.
*/
class INDI::BaseMediator
{
public:

    /** \brief Emmited when a new device is created from INDI server.
        \param dp Pointer to the base device instance
    */
    virtual void newDevice(INDI::BaseDevice *dp)  =0;

    /** \brief Emmited when a new property is created for an INDI driver.
        \param property Pointer to the Property Container

    */
    virtual void newProperty(INDI::Property *property)  =0;


    /** \brief Emmited when a property is deleted for an INDI driver.
        \param property Pointer to the Property Container to remove.

    */
    virtual void removeProperty(INDI::Property *property)  =0;


    /** \brief Emmited when a new BLOB value arrives from INDI server.
        \param bp Pointer to filled and process BLOB.
    */
    virtual void newBLOB(IBLOB *bp) =0;

    /** \brief Emmited when a new switch value arrives from INDI server.
        \param svp Pointer to a switch vector property.
    */
    virtual void newSwitch(ISwitchVectorProperty *svp) =0;

    /** \brief Emmited when a new number value arrives from INDI server.
        \param nvp Pointer to a number vector property.
    */
    virtual void newNumber(INumberVectorProperty *nvp) =0;

    /** \brief Emmited when a new text value arrives from INDI server.
        \param tvp Pointer to a text vector property.
    */
    virtual void newText(ITextVectorProperty *tvp) =0;

    /** \brief Emmited when a new light value arrives from INDI server.
        \param lvp Pointer to a light vector property.
    */
    virtual void newLight(ILightVectorProperty *lvp) =0;

    /** \brief Emmited when a new message arrives from INDI server.
        \param dp pointer to the INDI device the message is sent to.
        \param messageID ID of the message that can be used to retrieve the message from the device's messageQueue() function.
    */
    virtual void newMessage(INDI::BaseDevice *dp, int messageID) =0;

    /** \brief Emmited when the server is connected.
    */
    virtual void serverConnected() =0;

    /** \brief Emmited when the server gets disconnected.
        \param exit_code 0 if client was requested to disconnect from server. -1 if connection to server is terminated due to remote server disconnection.
    */
    virtual void serverDisconnected(int exit_code) =0;

    virtual ~BaseMediator() {}

};

#endif // INDIBASE_H