This file is indexed.

/usr/include/ktplugserv.h is in libkyototycoon-dev 0.9.56-1build2.

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
/*************************************************************************************************
 * Interface of pluggable server abstraction
 *                                                               Copyright (C) 2009-2012 FAL Labs
 * This file is part of Kyoto Tycoon.
 * This program is free software: you can redistribute it and/or modify it under the terms of
 * the GNU General Public License as published by the Free Software Foundation, either version
 * 3 of the License, or any later version.
 * This program 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 General Public License for more details.
 * You should have received a copy of the GNU General Public License along with this program.
 * If not, see <http://www.gnu.org/licenses/>.
 *************************************************************************************************/


#ifndef _KTPLUGSERV_H                    // duplication check
#define _KTPLUGSERV_H

#include <ktcommon.h>
#include <ktutil.h>
#include <ktsocket.h>
#include <ktthserv.h>
#include <kthttp.h>
#include <ktrpc.h>
#include <ktulog.h>
#include <ktshlib.h>
#include <kttimeddb.h>
#include <ktdbext.h>
#include <ktremotedb.h>

namespace kyototycoon {                  // common namespace


/**
 * Interface of pluggable server abstraction.
 */
class PluggableServer {
 public:
  /**
   * Destructor.
   */
  virtual ~PluggableServer() {
    _assert_(true);
  }
  /**
   * Configure server settings.
   * @param dbary an array of the database objects.
   * @param dbnum the number of the database objects.
   * @param logger the logger object.
   * @param logkinds kinds of logged messages by bitwise-or: Logger::DEBUG for debugging,
   * Logger::INFO for normal information, Logger::SYSTEM for system information, and
   * Logger::ERROR for fatal error.
   * @param expr an expression given in the command line.
   */
  virtual void configure(TimedDB* dbary, size_t dbnum,
                         ThreadedServer::Logger* logger, uint32_t logkinds,
                         const char* expr) = 0;
  /**
   * Start the service.
   * @return true on success, or false on failure.
   */
  virtual bool start() = 0;
  /**
   * Stop the service.
   * @return true on success, or false on failure.
   */
  virtual bool stop() = 0;
  /**
   * Finish the service.
   * @return true on success, or false on failure.
   */
  virtual bool finish() = 0;
};


/**
 * The name of the initializer function.
 */
const char* const KTSERVINITNAME = "ktservinit";


extern "C" {
/**
 * Initializer of a server implementation.
 * @note Each shared library of a pluggable server module must implement a function whose name is
 * "ktservinit" and return a new instance of a derived class of the PluggableServer class.  The
 * instance will be deleted implicitly by the caller.
 */
typedef PluggableServer* (*KTSERVINIT)();
}


}                                        // common namespace

#endif                                   // duplication check

// END OF FILE