Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/nall/stream/auto.hpp
2 views
1
#ifdef NALL_STREAM_INTERNAL_HPP
2
3
namespace nall {
4
5
#define autostream(...) (*makestream(__VA_ARGS__))
6
7
inline std::unique_ptr<stream> makestream(const string &path) {
8
if(path.ibeginswith("http://")) return std::unique_ptr<stream>(new httpstream(path, 80));
9
if(path.iendswith(".gz")) return std::unique_ptr<stream>(new gzipstream(filestream{path}));
10
if(path.iendswith(".zip")) return std::unique_ptr<stream>(new zipstream(filestream{path}));
11
return std::unique_ptr<stream>(new mmapstream(path));
12
}
13
14
inline std::unique_ptr<stream> makestream(uint8_t *data, unsigned size) {
15
return std::unique_ptr<stream>(new memorystream(data, size));
16
}
17
18
inline std::unique_ptr<stream> makestream(const uint8_t *data, unsigned size) {
19
return std::unique_ptr<stream>(new memorystream(data, size));
20
}
21
22
}
23
24
#endif
25
26