This file is indexed.

/usr/share/arc/examples/sdk/DataPointMyProtocol.cpp 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
#include <arc/data/DataPointDirect.h>

namespace Arc {

// DMC implementation for my protocol
class DataPointMyProtocol : public DataPointDirect {
 public:
  // Constructor should never be used directly
  DataPointMyProtocol(const URL& url, const UserConfig& usercfg, PluginArgument* parg);
  // Instance is called by the DataPointPluginLoader to get the correct DMC
  // instance. If returns a DataPointMyProtocol if the URL is of the form my://
  // or NULL otherwise.
  static Plugin* Instance(PluginArgument *arg);
  // The following methods from DataPoint must be implemented
  virtual DataStatus Check(bool check_meta);
  virtual DataStatus Remove();
  virtual DataStatus CreateDirectory(bool with_parents=false) { return DataStatus(DataStatus::UnimplementedError, EOPNOTSUPP); };
  virtual DataStatus Stat(FileInfo& file, DataPoint::DataPointInfoType verb);
  virtual DataStatus List(std::list<FileInfo>& file, DataPoint::DataPointInfoType verb);
  virtual DataStatus Rename(const URL& newurl) { return DataStatus(DataStatus::UnimplementedError, EOPNOTSUPP); };
  virtual DataStatus StartReading(DataBuffer& buffer);
  virtual DataStatus StartWriting(DataBuffer& buffer,
                                  DataCallback *space_cb = NULL);
  virtual DataStatus StopReading();
  virtual DataStatus StopWriting();
};

DataPointMyProtocol::DataPointMyProtocol(const URL& url, const UserConfig& usercfg, PluginArgument* parg)
 : DataPointDirect(url, usercfg, parg) {}

DataStatus DataPointMyProtocol::Check(bool check_meta) { return DataStatus::Success; }
DataStatus DataPointMyProtocol::Remove() { return DataStatus::Success; }
DataStatus DataPointMyProtocol::Stat(FileInfo& file,
                                     DataPoint::DataPointInfoType verb) { return DataStatus::Success; }
DataStatus DataPointMyProtocol::List(std::list<FileInfo>& file,
                                     DataPoint::DataPointInfoType verb) { return DataStatus::Success; }
DataStatus DataPointMyProtocol::StartReading(DataBuffer& buffer) { return DataStatus::Success; }
DataStatus DataPointMyProtocol::StartWriting(DataBuffer& buffer,
                                             DataCallback *space_cb) { return DataStatus::Success; }
DataStatus DataPointMyProtocol::StopReading() { return DataStatus::Success; }
DataStatus DataPointMyProtocol::StopWriting() { return DataStatus::Success; }

Plugin* DataPointMyProtocol::Instance(PluginArgument *arg) {
  DataPointPluginArgument *dmcarg = dynamic_cast<DataPointPluginArgument*>(arg);
  if (!dmcarg)
    return NULL;
  if (((const URL &)(*dmcarg)).Protocol() != "my")
    return NULL;
  return new DataPointMyProtocol(*dmcarg, *dmcarg, dmcarg);
}

} // namespace Arc

// Add this plugin to the plugin descriptor table
Arc::PluginDescriptor ARC_PLUGINS_TABLE_NAME[] = {
  { "my", "HED:DMC", "My protocol", 0, &Arc::DataPointMyProtocol::Instance },
  { NULL, NULL, NULL, 0, NULL }
};