This file is indexed.

/usr/lib/petscdir/3.1/include/petsclog.hh is in libpetsc3.1-dev 3.1.dfsg-11ubuntu1.

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
#if !defined(__PETSCLOG_HH)
#define __PETSCLOG_HH

#if defined(PETSC_CLANGUAGE_CXX) && !defined(PETSC_USE_EXTERN_CXX)
#include<map>

namespace PETSc {
  class LogStage {
  protected:
    std::string   name;
    PetscLogEvent id;
  public:
    LogStage() : name(), id() {};
    LogStage(const std::string& name, PetscLogStage id) : name(name), id(id) {};
    LogStage(const LogStage& stage) : name(stage.name), id(stage.id) {};
    void push() {
      PetscErrorCode ierr = PetscLogStagePush(this->id); CHKERRXX(ierr);
    };
    void pop() {
      PetscErrorCode ierr = PetscLogStagePop(); CHKERRXX(ierr);
    };
    PetscLogEvent getId() {return this->id;};
  };

  class LogEvent {
  protected:
    std::string   name;
    PetscLogEvent id;
  public:
    LogEvent() : name(), id() {};
    LogEvent(const std::string& name, PetscLogEvent id) : name(name), id(id) {};
    LogEvent(const LogEvent& event) : name(event.name), id(event.id) {};
    void begin(PetscObject o1 = PETSC_NULL, PetscObject o2 = PETSC_NULL, PetscObject o3 = PETSC_NULL, PetscObject o4 = PETSC_NULL) {
      PetscErrorCode ierr = PetscLogEventBegin(this->id, o1, o2, o3, o4); CHKERRXX(ierr);
    };
    void end(PetscObject o1 = PETSC_NULL, PetscObject o2 = PETSC_NULL, PetscObject o3 = PETSC_NULL, PetscObject o4 = PETSC_NULL) {
      PetscErrorCode ierr = PetscLogEventEnd(this->id, o1, o2, o3, o4); CHKERRXX(ierr);
    };
    void barrierBegin(PetscObject o1 = PETSC_NULL, PetscObject o2 = PETSC_NULL, PetscObject o3 = PETSC_NULL, PetscObject o4 = PETSC_NULL, MPI_Comm comm = MPI_COMM_NULL) {
      if (comm == MPI_COMM_NULL) comm = PETSC_COMM_WORLD;
      PetscErrorCode ierr = PetscLogEventBarrierBegin(this->id, o1, o2, o3, o4, comm); CHKERRXX(ierr);
    };
    void barrierEnd(PetscObject o1 = PETSC_NULL, PetscObject o2 = PETSC_NULL, PetscObject o3 = PETSC_NULL, PetscObject o4 = PETSC_NULL, MPI_Comm comm = MPI_COMM_NULL) {
      if (comm == MPI_COMM_NULL) comm = PETSC_COMM_WORLD;
      PetscErrorCode ierr = PetscLogEventBarrierEnd(this->id, o1, o2, o3, o4, comm); CHKERRXX(ierr);
    };
    PetscLogEvent getId() {return this->id;};
  };

  class Log {
  public:
    static std::map<std::string,LogEvent> event_registry;
    static std::map<std::string,LogStage> stage_registry;

    static LogEvent& Event(const std::string& name, PetscCookie cookie = PETSC_OBJECT_COOKIE) {
      if (event_registry.find(name) == event_registry.end()) {
        PetscLogEvent  id;
        PetscErrorCode ierr;

        /* Should check for already registered events */
        ierr = PetscLogEventRegister(name.c_str(), cookie, &id);CHKERRXX(ierr);
        event_registry[name] = LogEvent(name, id);
      }
      return event_registry[name];
    };

    static LogStage& Stage(const std::string& name) {
      if (stage_registry.find(name) == stage_registry.end()) {
        PetscLogStage  id;
        PetscErrorCode ierr;

        /* Should check for already registered stages */
        ierr = PetscLogStageRegister(name.c_str(), &id);CHKERRXX(ierr);
        stage_registry[name] = LogStage(name, id);
      }
      return stage_registry[name];
    };
  };
}
#endif /* PETSC_CLANGUAGE_CXX */

#endif /* __PETSCLOG_HH */