This file is indexed.

/usr/include/arc/message/Plexer.h is in nordugrid-arc-dev 4.2.0-2.

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
// MCCPlexer.h

#ifndef __ARC_MCC_PLEXER__
#define __ARC_MCC_PLEXER__

#include <list>
#include <string>
#include <arc/ArcRegex.h>
#include <arc/ArcConfig.h>
#include <arc/message/MCC.h>
#include <arc/message/Message.h>

namespace Arc {

  //! A pair of label (regex) and pointer to MCC.
  /*! A helper class that stores a label (regex) and a pointer to a
    service.
  */
  class PlexerEntry {
  private:
    //! Constructor.
    /*! Constructs a PlexerEntry and initializes its attributes.
    */
    PlexerEntry(const RegularExpression& label,
		MCCInterface* service);
    RegularExpression label;
    MCCInterface* mcc;
    friend class Plexer;
  };


  //! The Plexer class, used for routing messages to services.
  /*! This is the Plexer class. Its purpose is to route incoming
    messages to appropriate Services and MCC chains.
  */
  class Plexer: public MCC {
  public:

    //! The constructor.
    /*! This is the constructor. Since all member variables are
      instances of "well-behaving" STL classes, nothing needs to be
      done.
     */
    Plexer(Config *cfg, PluginArgument* arg);

    //! The destructor.
    /*! This is the destructor. Since all member variables are
      instances of "well-behaving" STL classes, nothing needs to be
      done.
     */
    virtual ~Plexer();

    //! Add reference to next MCC in chain.
    /*! This method is called by Loader for every potentially labeled
      link to next component which implements MCCInterface. If next is
      set NULL corresponding link is removed.
     */
    virtual void Next(MCCInterface* next, const std::string& label);

    //! Route request messages to appropriate services.
    /*! Routes the request message to the appropriate service.
      Routing is based on the path part of value of the ENDPOINT 
      attribute. Routed message is assigned following attributes:
        PLEXER:PATTERN - matched pattern,
        PLEXER:EXTENSION - last unmatched part of ENDPOINT path.
    */
    virtual MCC_Status process(Message& request, Message& response);

  /* protected:
    XXX: workaround because the python segmentation fault */
    static Logger logger;

  private:

    //! Extracts the path part of an URL.
    static std::string getPath(std::string url);

    //! The map of next MCCs.
    /*! This is a map that maps labels (regex expressions) to next
      elements with MCC interface. It is used for routing messages.
    */
    std::list<PlexerEntry> mccs;
  };

}

#endif