/usr/include/x86_64-linux-gnu/metkit/MarsLocation.h is in libodb-api-dev 0.17.6-2build1.
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 | /*
* (C) Copyright 1996-2017 ECMWF.
*
* This software is licensed under the terms of the Apache Licence Version 2.0
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
* In applying this licence, ECMWF does not waive the privileges and immunities
* granted to it by virtue of its status as an intergovernmental organisation nor
* does it submit to any jurisdiction.
*/
/// @author Tiago Quintino
/// @date Dec 2015
#ifndef metkit_MarsLocation_H
#define metkit_MarsLocation_H
#include "eckit/config/Configuration.h"
#include "metkit/MarsRequest.h"
namespace eckit {
class JSON;
class Stream;
}
namespace metkit {
//----------------------------------------------------------------------------------------------------------------------
/// MarsLocation represents a MarsRequest associated with the hostname and port.
/// From this location, the data can be directly retrieved without going through a queueing system.
/// It assumes all the data identified by the request can be got from the same location.
/// This is useful to identify and retrieve data directly from memory.
///
/// If we consider that a MarsRequest is analogue to a URI, then a MarsLocation is an analogue to a URL
class MarsLocation {
public: // methods
// - Constructors
MarsLocation(const MarsRequest& r, const std::string& hostname, int port);
MarsLocation(eckit::Stream&);
MarsLocation(const eckit::Configuration&);
// -- Destructor
~MarsLocation();
// -- Operators
operator eckit::Value() const;
void json(eckit::JSON&) const;
const MarsRequest& request() const;
std::string hostname() const;
int port() const;
private: // members
MarsRequest request_;
std::string hostname_;
int port_;
private: // methods
void print(std::ostream&) const;
void encode(eckit::Stream&) const;
// -- Class members
friend std::ostream& operator<<(std::ostream& s, const MarsLocation& r) {
r.print(s); return s;
}
friend eckit::JSON& operator<<(eckit::JSON& s, const MarsLocation& r) {
r.json(s); return s;
}
friend eckit::Stream& operator<<(eckit::Stream& s, const MarsLocation& r) {
r.encode(s); return s;
}
};
//----------------------------------------------------------------------------------------------------------------------
} // namespace metkit
#endif
|