diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-06-23 15:35:45 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-06-23 15:35:45 +0000 |
| commit | 90471d68050ebd05439435330e4d0dbb19c6fd1e (patch) | |
| tree | 7324c9a0e4d57328c15d32cb1efaa2a91ad774a9 /src/array_fun.h | |
| parent | 6b2ab3ffc0d96d66723fa8b43552fd09d2108781 (diff) | |
2009-06-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added experimental support of WEB-Seeding for multi-file torrent.
Due to fundamental changes in file handling in HTTP/FTP code, many
functions are not working: PeerStat, ServerHost, proxy..etc
* src/AbstractCommand.cc
* src/AbstractCommand.h
* src/BitfieldMan.cc
* src/BitfieldMan.h
* src/CreateRequestCommand.cc
* src/CreateRequestCommand.h
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/DownloadCommand.cc
* src/DownloadCommand.h
* src/DownloadContext.cc
* src/DownloadContext.h
* src/FileEntry.cc
* src/FileEntry.h
* src/FtpDownloadCommand.cc
* src/FtpDownloadCommand.h
* src/FtpFinishDownloadCommand.cc
* src/FtpFinishDownloadCommand.h
* src/FtpInitiateConnectionCommand.cc
* src/FtpInitiateConnectionCommand.h
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/FtpTunnelResponseCommand.cc
* src/HttpDownloadCommand.cc
* src/HttpDownloadCommand.h
* src/HttpInitiateConnectionCommand.cc
* src/HttpInitiateConnectionCommand.h
* src/HttpProxyResponseCommand.cc
* src/HttpRequest.cc
* src/HttpRequest.h
* src/HttpRequestCommand.cc
* src/HttpRequestCommand.h
* src/HttpResponseCommand.cc
* src/HttpResponseCommand.h
* src/HttpSkipResponseCommand.cc
* src/HttpSkipResponseCommand.h
* src/InitiateConnectionCommand.cc
* src/InitiateConnectionCommand.h
* src/InitiateConnectionCommandFactory.cc
* src/InitiateConnectionCommandFactory.h
* src/Makefile.am
* src/PieceStorage.h
* src/RequestGroup.cc
* src/RequestGroup.h
* src/RequestGroupMan.cc
* src/SegmentMan.cc
* src/SegmentMan.h
* src/SingleFileDownloadContext.h
* src/StreamFileAllocationEntry.cc
* src/TrackerWatcherCommand.cc
* src/UnknownLengthPieceStorage.cc
* src/UnknownLengthPieceStorage.h
* src/array_fun.h
* src/bitfield.h
* src/download_helper.cc
* test/DownloadContextTest.cc
* test/Makefile.am
* test/MockDownloadContext.h
Diffstat (limited to 'src/array_fun.h')
| -rw-r--r-- | src/array_fun.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/array_fun.h b/src/array_fun.h index a8990b9d..c6d53475 100644 --- a/src/array_fun.h +++ b/src/array_fun.h @@ -155,6 +155,13 @@ struct And }; template<typename T> +struct Or +{ + typedef T returnType; + static inline returnType apply(T lhs, T rhs) { return lhs|rhs; } +}; + +template<typename T> struct Negate { typedef T returnType; @@ -184,6 +191,13 @@ operator&(const L& l, const R& r) return BinExpr<L, And<typename L::returnType>, R>(l, r); } +template<typename L, typename R> +BinExpr<L, Or<typename L::returnType>, R> +operator|(const L& l, const R& r) +{ + return BinExpr<L, Or<typename L::returnType>, R>(l, r); +} + template<typename A> UnExpr<Negate<typename A::returnType>, A> operator~(const A& a) |
