This file is indexed.

/usr/include/x86_64-linux-gnu/alljoyn/controlpanel/ControlPanel.h is in liballjoynservices-dev-1604 16.04-3.

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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/******************************************************************************
 * Copyright AllSeen Alliance. All rights reserved.
 *
 *    Permission to use, copy, modify, and/or distribute this software for any
 *    purpose with or without fee is hereby granted, provided that the above
 *    copyright notice and this permission notice appear in all copies.
 *
 *    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 *    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 *    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 *    ANY SPECIAL, DIRECT, 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 CONTROLPANEL_H_
#define CONTROLPANEL_H_

#include <alljoyn/BusObject.h>
#include <alljoyn/controlpanel/Container.h>
#include <alljoyn/controlpanel/ControlPanelDevice.h>

namespace ajn {
namespace services {

class ControlPanelBusObject;

/**
 * ControlPanel Class. Class used to create a ControlPanel
 * ControlPanels are made up of a LanguageSet and a RootContainer
 */
class ControlPanel {
  public:

    /**
     * Function used to create a ControlPanel
     * @param languageSet - languageSet of the ControlPanel
     * @return newly created ControlPanel instance
     */
    static ControlPanel* createControlPanel(LanguageSet* languageSet);

    /**
     * ControlPanel constructor
     * @param languageSet - languageSet of controlPanel
     * @param objectPath - objectPath of controlPanel
     * @param device - device that contains this controlPanel
     */
    ControlPanel(LanguageSet const& languageSet, qcc::String objectPath, ControlPanelDevice* device);

    /**
     * Destructor of ControlPanel
     */
    virtual ~ControlPanel();

    /**
     * Set the RootWidget of the ControlPanel
     * @param rootWidget - rootWidget of the ControlPanel
     * @return status - success/failure
     */
    QStatus setRootWidget(Container* rootWidget);

    /**
     * Get the name of the Panel - the name of the rootWidget
     * @return name of the Panel
     */
    qcc::String getPanelName() const;

    /**
     * Get the RootWidget of the ControlPanel
     * @return rootWidget
     */
    Container* getRootWidget() const;

    /**
     * Register the BusObjects for this Widget
     * @param bus - bus used to register the busObjects
     * @param unitName - the unitName of this ControlPanel
     * @return status - success/failure
     */
    QStatus registerObjects(BusAttachment* bus, qcc::String const& unitName);

    /**
     * Register the BusObjects for this Widget
     * @param bus - bus used to register the busObjects
     * @return status - success/failure
     */
    QStatus registerObjects(BusAttachment* bus);

    /**
     * Unregister the BusObjects for this Widget
     * @param bus - bus used to unregister the busObjects
     * @return status - success/failure
     */
    QStatus unregisterObjects(BusAttachment* bus);

    /**
     * Get the LanguageSet of the ControlPanel
     * @return
     */
    const LanguageSet& getLanguageSet() const;

    /**
     * Get the Device of the ControlPanel
     * @return controlPanelDevice
     */
    ControlPanelDevice* getDevice() const;

    /**
     * Get the objectPath
     * @return
     */
    const qcc::String& getObjectPath() const;

    /**
     * Get the RootWidget of the ControlPanel
     * @param Language
     * @return pointer to rootWidget
     */
    Container* getRootWidget(qcc::String const& Language) const;

  private:

    /**
     * Private Constructor for ControlPanel.
     * To construct instance of ControlPanel used createControlPanel
     * @param languageSet
     */
    ControlPanel(LanguageSet const& languageSet);

    /**
     * LanguageSet of this ControlPanel
     */
    LanguageSet m_LanguageSet;

    /**
     * RootWidget of this ControlPanel
     */
    Container* m_RootWidget;

    /**
     * RootWidgetMap of this ControlPanel
     */
    std::map<qcc::String, Container*> m_RootWidgetMap;

    /**
     * The BusObject for this ControlPanel
     */
    ControlPanelBusObject* m_ControlPanelBusObject;

    /**
     * ObjectPath of the ControlPanel
     */
    qcc::String m_ObjectPath;

    /**
     * Device containing the ControlPanel
     */
    ControlPanelDevice* m_Device;

    /**
     * Copy constructor of ControlPanel - private. ControlPanel is not copy-able
     * @param controlPanel - ControlPanel to copy
     */
    ControlPanel(const ControlPanel& controlPanel);

    /**
     * Assignment operator of ControlPanel - private. ControlPanel is not assignable
     * @param controlPanel
     * @return
     */
    ControlPanel& operator=(const ControlPanel& controlPanel);

    /**
     * Check the compatibility of the versions with remote controlpanel
     * @return status - success/failure
     */
    QStatus checkVersions();

    /**
     * Add the Child Widgets
     * @return status - success/failure
     */
    QStatus addChildren();
};

} /* namespace services */
} /* namespace ajn */
#endif /* CONTROLPANEL_H_ */