catboost 1.25.1 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEPLOYMENT.md +22 -15
- package/README.md +37 -27
- package/binding.gyp +5 -7
- package/build_scripts/bootstrap.js +2 -1
- package/build_scripts/out/build.js +46 -68
- package/build_scripts/out/build_model.js +1 -1
- package/build_scripts/out/{build_ya.js → build_native.js} +1 -1
- package/build_scripts/out/ci.js +5 -5
- package/build_scripts/out/config.js +32 -18
- package/build_scripts/out/install.js +5 -3
- package/build_scripts/out/package_prepublish.js +1 -1
- package/build_scripts/out/packaging.js +1 -19
- package/build_scripts/out/run_tests.js +1 -1
- package/build_scripts/out/test.js +8 -3
- package/config.json +18 -11
- package/inc/catboost/libs/model_interface/c_api.h +349 -3
- package/lib/catboost.d.ts +65 -21
- package/package.json +4 -4
- package/src/api_helpers.cpp +100 -24
- package/src/api_helpers.h +8 -7
- package/src/api_module.cpp +1 -2
- package/src/model.cpp +483 -83
- package/src/model.h +24 -9
- package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
- package/inc/util/charset/recode_result.h +0 -9
- package/inc/util/charset/unicode_table.h +0 -123
- package/inc/util/charset/unidata.h +0 -421
- package/inc/util/charset/utf8.h +0 -384
- package/inc/util/charset/wide.h +0 -843
- package/inc/util/charset/wide_specific.h +0 -22
- package/inc/util/datetime/base.h +0 -669
- package/inc/util/datetime/constants.h +0 -7
- package/inc/util/datetime/cputimer.h +0 -124
- package/inc/util/datetime/parser.h +0 -292
- package/inc/util/datetime/systime.h +0 -47
- package/inc/util/datetime/uptime.h +0 -8
- package/inc/util/digest/city.h +0 -88
- package/inc/util/digest/fnv.h +0 -73
- package/inc/util/digest/multi.h +0 -14
- package/inc/util/digest/murmur.h +0 -57
- package/inc/util/digest/numeric.h +0 -86
- package/inc/util/digest/sequence.h +0 -48
- package/inc/util/draft/date.h +0 -129
- package/inc/util/draft/datetime.h +0 -184
- package/inc/util/draft/enum.h +0 -136
- package/inc/util/draft/holder_vector.h +0 -102
- package/inc/util/draft/ip.h +0 -131
- package/inc/util/draft/matrix.h +0 -108
- package/inc/util/draft/memory.h +0 -40
- package/inc/util/folder/dirent_win.h +0 -46
- package/inc/util/folder/dirut.h +0 -121
- package/inc/util/folder/filelist.h +0 -81
- package/inc/util/folder/fts.h +0 -108
- package/inc/util/folder/iterator.h +0 -109
- package/inc/util/folder/lstat_win.h +0 -20
- package/inc/util/folder/path.h +0 -225
- package/inc/util/folder/pathsplit.h +0 -113
- package/inc/util/folder/tempdir.h +0 -42
- package/inc/util/generic/adaptor.h +0 -134
- package/inc/util/generic/algorithm.h +0 -765
- package/inc/util/generic/array_ref.h +0 -282
- package/inc/util/generic/array_size.h +0 -24
- package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
- package/inc/util/generic/bitmap.h +0 -1115
- package/inc/util/generic/bitops.h +0 -459
- package/inc/util/generic/bt_exception.h +0 -24
- package/inc/util/generic/buffer.h +0 -232
- package/inc/util/generic/cast.h +0 -176
- package/inc/util/generic/deque.h +0 -24
- package/inc/util/generic/explicit_type.h +0 -42
- package/inc/util/generic/fastqueue.h +0 -55
- package/inc/util/generic/flags.h +0 -244
- package/inc/util/generic/function.h +0 -103
- package/inc/util/generic/fwd.h +0 -171
- package/inc/util/generic/guid.h +0 -61
- package/inc/util/generic/hash.h +0 -2032
- package/inc/util/generic/hash_primes.h +0 -140
- package/inc/util/generic/hash_set.h +0 -490
- package/inc/util/generic/hide_ptr.h +0 -3
- package/inc/util/generic/intrlist.h +0 -876
- package/inc/util/generic/is_in.h +0 -53
- package/inc/util/generic/iterator.h +0 -137
- package/inc/util/generic/iterator_range.h +0 -105
- package/inc/util/generic/lazy_value.h +0 -66
- package/inc/util/generic/list.h +0 -22
- package/inc/util/generic/map.h +0 -44
- package/inc/util/generic/mapfindptr.h +0 -60
- package/inc/util/generic/maybe.h +0 -713
- package/inc/util/generic/maybe_traits.h +0 -164
- package/inc/util/generic/mem_copy.h +0 -55
- package/inc/util/generic/noncopyable.h +0 -38
- package/inc/util/generic/object_counter.h +0 -53
- package/inc/util/generic/ptr.h +0 -1113
- package/inc/util/generic/queue.h +0 -57
- package/inc/util/generic/refcount.h +0 -162
- package/inc/util/generic/reserve.h +0 -11
- package/inc/util/generic/scope.h +0 -65
- package/inc/util/generic/serialized_enum.h +0 -406
- package/inc/util/generic/set.h +0 -42
- package/inc/util/generic/singleton.h +0 -136
- package/inc/util/generic/size_literals.h +0 -65
- package/inc/util/generic/stack.h +0 -18
- package/inc/util/generic/store_policy.h +0 -120
- package/inc/util/generic/strbase.h +0 -612
- package/inc/util/generic/strbuf.h +0 -552
- package/inc/util/generic/strfcpy.h +0 -17
- package/inc/util/generic/string.h +0 -1572
- package/inc/util/generic/string_hash.h +0 -21
- package/inc/util/generic/string_ut.h +0 -1175
- package/inc/util/generic/type_name.h +0 -34
- package/inc/util/generic/typelist.h +0 -114
- package/inc/util/generic/typetraits.h +0 -325
- package/inc/util/generic/utility.h +0 -132
- package/inc/util/generic/va_args.h +0 -400
- package/inc/util/generic/variant.h +0 -631
- package/inc/util/generic/variant_traits.h +0 -171
- package/inc/util/generic/vector.h +0 -119
- package/inc/util/generic/xrange.h +0 -258
- package/inc/util/generic/yexception.h +0 -212
- package/inc/util/generic/yexception_ut.h +0 -14
- package/inc/util/generic/ylimits.h +0 -92
- package/inc/util/generic/ymath.h +0 -206
- package/inc/util/memory/addstorage.h +0 -93
- package/inc/util/memory/alloc.h +0 -27
- package/inc/util/memory/blob.h +0 -296
- package/inc/util/memory/mmapalloc.h +0 -8
- package/inc/util/memory/pool.h +0 -432
- package/inc/util/memory/segmented_string_pool.h +0 -194
- package/inc/util/memory/segpool_alloc.h +0 -118
- package/inc/util/memory/smallobj.h +0 -141
- package/inc/util/memory/tempbuf.h +0 -111
- package/inc/util/network/address.h +0 -136
- package/inc/util/network/endpoint.h +0 -61
- package/inc/util/network/hostip.h +0 -16
- package/inc/util/network/init.h +0 -60
- package/inc/util/network/interface.h +0 -17
- package/inc/util/network/iovec.h +0 -65
- package/inc/util/network/ip.h +0 -116
- package/inc/util/network/nonblock.h +0 -8
- package/inc/util/network/pair.h +0 -9
- package/inc/util/network/poller.h +0 -58
- package/inc/util/network/pollerimpl.h +0 -707
- package/inc/util/network/sock.h +0 -608
- package/inc/util/network/socket.h +0 -421
- package/inc/util/random/common_ops.h +0 -130
- package/inc/util/random/easy.h +0 -47
- package/inc/util/random/entropy.h +0 -21
- package/inc/util/random/fast.h +0 -101
- package/inc/util/random/init_atfork.h +0 -3
- package/inc/util/random/lcg_engine.h +0 -66
- package/inc/util/random/mersenne.h +0 -46
- package/inc/util/random/mersenne32.h +0 -50
- package/inc/util/random/mersenne64.h +0 -50
- package/inc/util/random/normal.h +0 -38
- package/inc/util/random/random.h +0 -30
- package/inc/util/random/shuffle.h +0 -39
- package/inc/util/str_stl.h +0 -266
- package/inc/util/stream/aligned.h +0 -99
- package/inc/util/stream/buffer.h +0 -119
- package/inc/util/stream/buffered.h +0 -225
- package/inc/util/stream/debug.h +0 -53
- package/inc/util/stream/direct_io.h +0 -43
- package/inc/util/stream/file.h +0 -108
- package/inc/util/stream/format.h +0 -444
- package/inc/util/stream/fwd.h +0 -100
- package/inc/util/stream/hex.h +0 -8
- package/inc/util/stream/holder.h +0 -44
- package/inc/util/stream/input.h +0 -273
- package/inc/util/stream/labeled.h +0 -19
- package/inc/util/stream/length.h +0 -100
- package/inc/util/stream/mem.h +0 -255
- package/inc/util/stream/multi.h +0 -32
- package/inc/util/stream/null.h +0 -61
- package/inc/util/stream/output.h +0 -304
- package/inc/util/stream/pipe.h +0 -112
- package/inc/util/stream/printf.h +0 -25
- package/inc/util/stream/str.h +0 -207
- package/inc/util/stream/tee.h +0 -28
- package/inc/util/stream/tempbuf.h +0 -21
- package/inc/util/stream/tokenizer.h +0 -214
- package/inc/util/stream/trace.h +0 -60
- package/inc/util/stream/walk.h +0 -35
- package/inc/util/stream/zerocopy.h +0 -91
- package/inc/util/stream/zerocopy_output.h +0 -57
- package/inc/util/stream/zlib.h +0 -173
- package/inc/util/string/ascii.h +0 -236
- package/inc/util/string/builder.h +0 -39
- package/inc/util/string/cast.h +0 -347
- package/inc/util/string/cstriter.h +0 -14
- package/inc/util/string/escape.h +0 -70
- package/inc/util/string/hex.h +0 -59
- package/inc/util/string/join.h +0 -194
- package/inc/util/string/printf.h +0 -13
- package/inc/util/string/reverse.h +0 -16
- package/inc/util/string/split.h +0 -1080
- package/inc/util/string/strip.h +0 -257
- package/inc/util/string/strspn.h +0 -65
- package/inc/util/string/subst.h +0 -56
- package/inc/util/string/type.h +0 -50
- package/inc/util/string/util.h +0 -195
- package/inc/util/string/vector.h +0 -132
- package/inc/util/system/align.h +0 -50
- package/inc/util/system/atexit.h +0 -22
- package/inc/util/system/atomic.h +0 -51
- package/inc/util/system/atomic_gcc.h +0 -90
- package/inc/util/system/atomic_ops.h +0 -189
- package/inc/util/system/atomic_win.h +0 -114
- package/inc/util/system/backtrace.h +0 -39
- package/inc/util/system/byteorder.h +0 -186
- package/inc/util/system/compat.h +0 -84
- package/inc/util/system/compiler.h +0 -620
- package/inc/util/system/condvar.h +0 -71
- package/inc/util/system/context.h +0 -181
- package/inc/util/system/context_aarch64.h +0 -8
- package/inc/util/system/context_i686.h +0 -9
- package/inc/util/system/context_x86.h +0 -12
- package/inc/util/system/context_x86_64.h +0 -7
- package/inc/util/system/cpu_id.h +0 -159
- package/inc/util/system/daemon.h +0 -28
- package/inc/util/system/datetime.h +0 -98
- package/inc/util/system/defaults.h +0 -149
- package/inc/util/system/demangle.h +0 -5
- package/inc/util/system/demangle_impl.h +0 -23
- package/inc/util/system/direct_io.h +0 -71
- package/inc/util/system/dynlib.h +0 -119
- package/inc/util/system/env.h +0 -32
- package/inc/util/system/error.h +0 -95
- package/inc/util/system/event.h +0 -122
- package/inc/util/system/execpath.h +0 -17
- package/inc/util/system/fasttime.h +0 -6
- package/inc/util/system/fhandle.h +0 -27
- package/inc/util/system/file.h +0 -210
- package/inc/util/system/file_lock.h +0 -34
- package/inc/util/system/filemap.h +0 -383
- package/inc/util/system/flock.h +0 -35
- package/inc/util/system/fs.h +0 -156
- package/inc/util/system/fs_win.h +0 -29
- package/inc/util/system/fstat.h +0 -46
- package/inc/util/system/getpid.h +0 -12
- package/inc/util/system/guard.h +0 -179
- package/inc/util/system/hi_lo.h +0 -139
- package/inc/util/system/hostname.h +0 -10
- package/inc/util/system/hp_timer.h +0 -36
- package/inc/util/system/info.h +0 -12
- package/inc/util/system/interrupt_signals.h +0 -22
- package/inc/util/system/madvise.h +0 -30
- package/inc/util/system/maxlen.h +0 -32
- package/inc/util/system/mem_info.h +0 -18
- package/inc/util/system/mincore.h +0 -38
- package/inc/util/system/mktemp.h +0 -11
- package/inc/util/system/mlock.h +0 -43
- package/inc/util/system/mutex.h +0 -67
- package/inc/util/system/nice.h +0 -3
- package/inc/util/system/pipe.h +0 -90
- package/inc/util/system/platform.h +0 -246
- package/inc/util/system/progname.h +0 -13
- package/inc/util/system/protect.h +0 -25
- package/inc/util/system/rusage.h +0 -26
- package/inc/util/system/rwlock.h +0 -78
- package/inc/util/system/sanitizers.h +0 -122
- package/inc/util/system/sem.h +0 -41
- package/inc/util/system/shellcommand.h +0 -472
- package/inc/util/system/shmat.h +0 -32
- package/inc/util/system/sigset.h +0 -78
- package/inc/util/system/spin_wait.h +0 -10
- package/inc/util/system/spinlock.h +0 -121
- package/inc/util/system/src_location.h +0 -25
- package/inc/util/system/src_root.h +0 -68
- package/inc/util/system/sys_alloc.h +0 -43
- package/inc/util/system/sysstat.h +0 -52
- package/inc/util/system/tempfile.h +0 -34
- package/inc/util/system/thread.h +0 -167
- package/inc/util/system/tls.h +0 -307
- package/inc/util/system/types.h +0 -119
- package/inc/util/system/unaligned_mem.h +0 -67
- package/inc/util/system/user.h +0 -5
- package/inc/util/system/utime.h +0 -6
- package/inc/util/system/valgrind.h +0 -48
- package/inc/util/system/winint.h +0 -43
- package/inc/util/system/yassert.h +0 -121
- package/inc/util/system/yield.h +0 -4
- package/inc/util/thread/factory.h +0 -65
- package/inc/util/thread/fwd.h +0 -30
- package/inc/util/thread/lfqueue.h +0 -406
- package/inc/util/thread/lfstack.h +0 -188
- package/inc/util/thread/pool.h +0 -388
- package/inc/util/thread/singleton.h +0 -42
- package/inc/util/ysafeptr.h +0 -427
- package/inc/util/ysaveload.h +0 -700
package/inc/util/stream/tee.h
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "output.h"
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @addtogroup Streams_Multi
|
|
7
|
-
* @{
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* A proxy output stream that writes into two slave streams simultaneously.
|
|
12
|
-
*/
|
|
13
|
-
class TTeeOutput: public IOutputStream {
|
|
14
|
-
public:
|
|
15
|
-
TTeeOutput(IOutputStream* l, IOutputStream* r) noexcept;
|
|
16
|
-
~TTeeOutput() override;
|
|
17
|
-
|
|
18
|
-
private:
|
|
19
|
-
void DoWrite(const void* buf, size_t len) override;
|
|
20
|
-
void DoFlush() override;
|
|
21
|
-
void DoFinish() override;
|
|
22
|
-
|
|
23
|
-
private:
|
|
24
|
-
IOutputStream* L_;
|
|
25
|
-
IOutputStream* R_;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/** @} */
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "output.h"
|
|
4
|
-
|
|
5
|
-
#include <util/memory/tempbuf.h>
|
|
6
|
-
|
|
7
|
-
class TTempBufOutput: public IOutputStream, public TTempBuf {
|
|
8
|
-
public:
|
|
9
|
-
inline TTempBufOutput() = default;
|
|
10
|
-
|
|
11
|
-
explicit TTempBufOutput(size_t size)
|
|
12
|
-
: TTempBuf(size)
|
|
13
|
-
{
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
TTempBufOutput(TTempBufOutput&&) noexcept = default;
|
|
17
|
-
TTempBufOutput& operator=(TTempBufOutput&&) noexcept = default;
|
|
18
|
-
|
|
19
|
-
protected:
|
|
20
|
-
void DoWrite(const void* data, size_t len) override;
|
|
21
|
-
};
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "input.h"
|
|
4
|
-
|
|
5
|
-
#include <util/generic/buffer.h>
|
|
6
|
-
#include <util/generic/mem_copy.h>
|
|
7
|
-
#include <util/generic/strbuf.h>
|
|
8
|
-
#include <util/system/compiler.h>
|
|
9
|
-
#include <util/system/yassert.h>
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @addtogroup Streams
|
|
13
|
-
* @{
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Simple stream tokenizer. Splits the stream into tokens that are available
|
|
18
|
-
* via iterator interface.
|
|
19
|
-
*
|
|
20
|
-
* @tparam TEndOfToken Predicate for token delimiter characters.
|
|
21
|
-
* @see TEol
|
|
22
|
-
*/
|
|
23
|
-
template <typename TEndOfToken>
|
|
24
|
-
class TStreamTokenizer {
|
|
25
|
-
public:
|
|
26
|
-
class TIterator {
|
|
27
|
-
public:
|
|
28
|
-
inline TIterator(TStreamTokenizer* const parent)
|
|
29
|
-
: Parent_(parent)
|
|
30
|
-
, AtEnd_(!Parent_->Next(Data_, Len_))
|
|
31
|
-
{
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
inline TIterator() noexcept
|
|
35
|
-
: Parent_(nullptr)
|
|
36
|
-
, Data_(nullptr)
|
|
37
|
-
, Len_(0)
|
|
38
|
-
, AtEnd_(true)
|
|
39
|
-
{
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
inline ~TIterator() = default;
|
|
43
|
-
|
|
44
|
-
inline void operator++() {
|
|
45
|
-
Next();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
inline bool operator==(const TIterator& l) const noexcept {
|
|
49
|
-
return AtEnd_ == l.AtEnd_;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
inline bool operator!=(const TIterator& l) const noexcept {
|
|
53
|
-
return !(*this == l);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @return Return null-terminated character array with current token.
|
|
58
|
-
* The pointer may be invalid after iterator increment.
|
|
59
|
-
*/
|
|
60
|
-
inline const char* Data() const noexcept {
|
|
61
|
-
Y_ASSERT(!AtEnd_);
|
|
62
|
-
|
|
63
|
-
return Data_;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @return Length of current token.
|
|
68
|
-
*/
|
|
69
|
-
inline size_t Length() const noexcept {
|
|
70
|
-
Y_ASSERT(!AtEnd_);
|
|
71
|
-
|
|
72
|
-
return Len_;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
inline TIterator* operator->() noexcept {
|
|
76
|
-
return this;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
inline TStringBuf operator*() noexcept {
|
|
80
|
-
return TStringBuf{Data_, Len_};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
private:
|
|
84
|
-
inline void Next() {
|
|
85
|
-
Y_ASSERT(Parent_);
|
|
86
|
-
|
|
87
|
-
AtEnd_ = !Parent_->Next(Data_, Len_);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private:
|
|
91
|
-
TStreamTokenizer* const Parent_;
|
|
92
|
-
char* Data_;
|
|
93
|
-
size_t Len_;
|
|
94
|
-
bool AtEnd_;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
inline TStreamTokenizer(IInputStream* const input, const TEndOfToken& eot = TEndOfToken(),
|
|
98
|
-
const size_t initial = 1024)
|
|
99
|
-
: Input_(input)
|
|
100
|
-
, Buf_(initial)
|
|
101
|
-
, Cur_(BufBegin())
|
|
102
|
-
, End_(BufBegin())
|
|
103
|
-
, Eot_(eot)
|
|
104
|
-
{
|
|
105
|
-
CheckBuf();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
inline bool Next(char*& buf, size_t& len) {
|
|
109
|
-
char* it = Cur_;
|
|
110
|
-
|
|
111
|
-
while (true) {
|
|
112
|
-
do {
|
|
113
|
-
while (it != End_) {
|
|
114
|
-
if (Eot_(*it)) {
|
|
115
|
-
*it = '\0';
|
|
116
|
-
|
|
117
|
-
buf = Cur_;
|
|
118
|
-
len = it - Cur_;
|
|
119
|
-
Cur_ = it + 1;
|
|
120
|
-
|
|
121
|
-
return true;
|
|
122
|
-
} else {
|
|
123
|
-
++it;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (Fill() == 0 && End_ != BufEnd()) {
|
|
128
|
-
*it = '\0';
|
|
129
|
-
|
|
130
|
-
buf = Cur_;
|
|
131
|
-
len = it - Cur_;
|
|
132
|
-
Cur_ = End_;
|
|
133
|
-
|
|
134
|
-
return len;
|
|
135
|
-
}
|
|
136
|
-
} while (it != BufEnd());
|
|
137
|
-
|
|
138
|
-
Y_ASSERT(it == BufEnd());
|
|
139
|
-
Y_ASSERT(End_ == BufEnd());
|
|
140
|
-
|
|
141
|
-
const size_t blen = End_ - Cur_;
|
|
142
|
-
if (Cur_ == BufBegin()) {
|
|
143
|
-
Y_ASSERT(blen == Buf_.Capacity());
|
|
144
|
-
|
|
145
|
-
/*
|
|
146
|
-
* do reallocate
|
|
147
|
-
*/
|
|
148
|
-
|
|
149
|
-
Buf_.Reserve(Buf_.Capacity() * 4);
|
|
150
|
-
CheckBuf();
|
|
151
|
-
} else {
|
|
152
|
-
/*
|
|
153
|
-
* do move
|
|
154
|
-
*/
|
|
155
|
-
|
|
156
|
-
MemMove(BufBegin(), Cur_, blen);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
Cur_ = BufBegin();
|
|
160
|
-
End_ = Cur_ + blen;
|
|
161
|
-
it = End_;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
inline TIterator begin() {
|
|
166
|
-
return TIterator{this};
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
inline TIterator end() noexcept {
|
|
170
|
-
return {};
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
private:
|
|
174
|
-
inline size_t Fill() {
|
|
175
|
-
const size_t avail = BufEnd() - End_;
|
|
176
|
-
const size_t readed = Input_->Read(End_, avail);
|
|
177
|
-
|
|
178
|
-
End_ += readed;
|
|
179
|
-
|
|
180
|
-
return readed;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
inline char* BufBegin() noexcept {
|
|
184
|
-
return Buf_.Data();
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
inline char* BufEnd() noexcept {
|
|
188
|
-
return Buf_.Data() + Buf_.Capacity();
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
inline void CheckBuf() const {
|
|
192
|
-
if (!Buf_.Data()) {
|
|
193
|
-
throw std::bad_alloc();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
private:
|
|
198
|
-
IInputStream* const Input_;
|
|
199
|
-
TBuffer Buf_;
|
|
200
|
-
char* Cur_;
|
|
201
|
-
char* End_;
|
|
202
|
-
TEndOfToken Eot_;
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Predicate for `TStreamTokenizer` that uses '\\n' as a delimiter.
|
|
207
|
-
*/
|
|
208
|
-
struct TEol {
|
|
209
|
-
inline bool operator()(char ch) const noexcept {
|
|
210
|
-
return ch == '\n';
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
/** @} */
|
package/inc/util/stream/trace.h
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "debug.h"
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Debug level, as set via `DBGOUT` environment variable.
|
|
7
|
-
*/
|
|
8
|
-
enum ETraceLevel : ui8 {
|
|
9
|
-
TRACE_ERR = 1,
|
|
10
|
-
TRACE_WARN = 2,
|
|
11
|
-
TRACE_NOTICE = 3,
|
|
12
|
-
TRACE_INFO = 4,
|
|
13
|
-
TRACE_DEBUG = 5,
|
|
14
|
-
TRACE_DETAIL = 6,
|
|
15
|
-
TRACE_VERBOSE = 7
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
#if !defined(NDEBUG) && !defined(Y_ENABLE_TRACE)
|
|
19
|
-
#define Y_ENABLE_TRACE
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
|
-
#ifdef Y_ENABLE_TRACE
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Writes the given data into standard debug stream if current debug level set
|
|
26
|
-
* via `DBGOUT` environment variable permits it.
|
|
27
|
-
*
|
|
28
|
-
* Does nothing in release builds unless `Y_ENABLE_TRACE` is defined.
|
|
29
|
-
*
|
|
30
|
-
* Example usage:
|
|
31
|
-
* @code
|
|
32
|
-
* Y_DBGTRACE(DEBUG, "Advance from " << node1 << " to " << node2);
|
|
33
|
-
* @endcode
|
|
34
|
-
*
|
|
35
|
-
* @param elevel Debug level of this trace command, e.g.
|
|
36
|
-
* `WARN` or `DEBUG`. Basically a suffix of
|
|
37
|
-
* one of the values of `ETraceLevel` enum.
|
|
38
|
-
* @param args Argument chain to be written out into
|
|
39
|
-
* standard debug stream, joined with `<<`
|
|
40
|
-
* operator.
|
|
41
|
-
* @see ETraceLevel
|
|
42
|
-
*/
|
|
43
|
-
#define Y_DBGTRACE(elevel, args) Y_DBGTRACE0(int(TRACE_##elevel), args)
|
|
44
|
-
#define Y_DBGTRACE0(level, args) \
|
|
45
|
-
do \
|
|
46
|
-
if ((level) <= StdDbgLevel()) { \
|
|
47
|
-
StdDbgStream() << args << Endl; \
|
|
48
|
-
} \
|
|
49
|
-
while (false)
|
|
50
|
-
|
|
51
|
-
#else
|
|
52
|
-
|
|
53
|
-
#define Y_DBGTRACE(elevel, args) \
|
|
54
|
-
do { \
|
|
55
|
-
} while (false)
|
|
56
|
-
#define Y_DBGTRACE0(level, args) \
|
|
57
|
-
do { \
|
|
58
|
-
} while (false)
|
|
59
|
-
|
|
60
|
-
#endif
|
package/inc/util/stream/walk.h
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "zerocopy.h"
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Zero-copy stream that simplifies implementation of derived classes.
|
|
7
|
-
*
|
|
8
|
-
* Derived classes must implement `DoUnboundedNext` method.
|
|
9
|
-
*/
|
|
10
|
-
class IWalkInput: public IZeroCopyInputFastReadTo {
|
|
11
|
-
public:
|
|
12
|
-
IWalkInput()
|
|
13
|
-
: Buf_(nullptr)
|
|
14
|
-
, Len_(0)
|
|
15
|
-
{
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
protected:
|
|
19
|
-
void DoUndo(size_t len) override;
|
|
20
|
-
size_t DoNext(const void** ptr, size_t len) override;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Returns the next data chunk from this input stream. There are no
|
|
24
|
-
* restrictions on the size of the data chunk.
|
|
25
|
-
*
|
|
26
|
-
* @param ptr[out] Pointer to the start of the data chunk.
|
|
27
|
-
* @returns Size of the returned data chunk, in bytes.
|
|
28
|
-
* Return value of zero signals end of stream.
|
|
29
|
-
*/
|
|
30
|
-
virtual size_t DoUnboundedNext(const void** ptr) = 0;
|
|
31
|
-
|
|
32
|
-
private:
|
|
33
|
-
const void* Buf_;
|
|
34
|
-
size_t Len_;
|
|
35
|
-
};
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <util/system/yassert.h>
|
|
4
|
-
#include <util/system/defaults.h>
|
|
5
|
-
#include <util/generic/ylimits.h>
|
|
6
|
-
|
|
7
|
-
#include "input.h"
|
|
8
|
-
|
|
9
|
-
class IOutputStream;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @addtogroup Streams
|
|
13
|
-
* @{
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Input stream with direct access to the input buffer.
|
|
18
|
-
*
|
|
19
|
-
* Derived classes must implement `DoNext` method.
|
|
20
|
-
*/
|
|
21
|
-
class IZeroCopyInput: public IInputStream {
|
|
22
|
-
public:
|
|
23
|
-
IZeroCopyInput() noexcept = default;
|
|
24
|
-
~IZeroCopyInput() override;
|
|
25
|
-
|
|
26
|
-
IZeroCopyInput(IZeroCopyInput&&) noexcept = default;
|
|
27
|
-
IZeroCopyInput& operator=(IZeroCopyInput&&) noexcept = default;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Returns the next data chunk from this input stream.
|
|
31
|
-
*
|
|
32
|
-
* Note that this function is not guaranteed to return the requested number
|
|
33
|
-
* of bytes, even if they are in fact available in the stream.
|
|
34
|
-
*
|
|
35
|
-
* @param ptr[out] Pointer to the start of the data chunk.
|
|
36
|
-
* @param len[in] Maximal size of the data chunk to be returned, in bytes.
|
|
37
|
-
* @returns Size of the returned data chunk, in bytes.
|
|
38
|
-
* Return value of zero signals end of stream.
|
|
39
|
-
*/
|
|
40
|
-
template <class T>
|
|
41
|
-
inline size_t Next(T** ptr, size_t len) {
|
|
42
|
-
Y_ASSERT(ptr);
|
|
43
|
-
|
|
44
|
-
return DoNext((const void**)ptr, len);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
template <class T>
|
|
48
|
-
inline size_t Next(T** ptr) {
|
|
49
|
-
return Next(ptr, Max<size_t>());
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
protected:
|
|
53
|
-
size_t DoRead(void* buf, size_t len) override;
|
|
54
|
-
size_t DoSkip(size_t len) override;
|
|
55
|
-
ui64 DoReadAll(IOutputStream& out) override;
|
|
56
|
-
virtual size_t DoNext(const void** ptr, size_t len) = 0;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Input stream with direct access to the input buffer and ability to undo read
|
|
61
|
-
*
|
|
62
|
-
* Derived classes must implement `DoUndo` method.
|
|
63
|
-
*/
|
|
64
|
-
class IZeroCopyInputFastReadTo: public IZeroCopyInput {
|
|
65
|
-
public:
|
|
66
|
-
IZeroCopyInputFastReadTo() noexcept = default;
|
|
67
|
-
~IZeroCopyInputFastReadTo() override;
|
|
68
|
-
|
|
69
|
-
IZeroCopyInputFastReadTo(IZeroCopyInputFastReadTo&&) noexcept = default;
|
|
70
|
-
IZeroCopyInputFastReadTo& operator=(IZeroCopyInputFastReadTo&&) noexcept = default;
|
|
71
|
-
|
|
72
|
-
protected:
|
|
73
|
-
size_t DoReadTo(TString& st, char ch) override;
|
|
74
|
-
|
|
75
|
-
private:
|
|
76
|
-
/**
|
|
77
|
-
* Undo read.
|
|
78
|
-
*
|
|
79
|
-
* Note that this function not check if you try undo more that read. In fact Undo used for undo read in last chunk.
|
|
80
|
-
*
|
|
81
|
-
* @param len[in] Bytes to undo.
|
|
82
|
-
*/
|
|
83
|
-
inline void Undo(size_t len) {
|
|
84
|
-
if (len) {
|
|
85
|
-
DoUndo(len);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
virtual void DoUndo(size_t len) = 0;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/** @} */
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <util/system/yassert.h>
|
|
4
|
-
|
|
5
|
-
#include "output.h"
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @addtogroup Streams
|
|
9
|
-
* @{
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Output stream with direct access to the output buffer.
|
|
14
|
-
*
|
|
15
|
-
* Derived classes must implement `DoNext` and `DoUndo` methods.
|
|
16
|
-
*/
|
|
17
|
-
class IZeroCopyOutput: public IOutputStream {
|
|
18
|
-
public:
|
|
19
|
-
IZeroCopyOutput() noexcept = default;
|
|
20
|
-
~IZeroCopyOutput() override = default;
|
|
21
|
-
|
|
22
|
-
IZeroCopyOutput(IZeroCopyOutput&&) noexcept = default;
|
|
23
|
-
IZeroCopyOutput& operator=(IZeroCopyOutput&&) noexcept = default;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Returns the next buffer to write to from this output stream.
|
|
27
|
-
*
|
|
28
|
-
* @param ptr[out] Pointer to the start of the buffer.
|
|
29
|
-
* @returns Size of the returned buffer, in bytes.
|
|
30
|
-
* Return value is always nonzero.
|
|
31
|
-
*/
|
|
32
|
-
template <class T>
|
|
33
|
-
inline size_t Next(T** ptr) {
|
|
34
|
-
Y_ASSERT(ptr);
|
|
35
|
-
|
|
36
|
-
return DoNext((void**)ptr);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Tells the stream that `len` bytes at the end of the buffer returned previously
|
|
41
|
-
* by Next were actually not written so the current position in stream must be moved backwards.
|
|
42
|
-
* `len` must not be greater than the size of the buffer previously returned by `Next`.
|
|
43
|
-
*
|
|
44
|
-
* @param len[in] Number of bytes at the end to move the position by.
|
|
45
|
-
*
|
|
46
|
-
*/
|
|
47
|
-
inline void Undo(size_t len) {
|
|
48
|
-
return DoUndo(len);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
protected:
|
|
52
|
-
void DoWrite(const void* buf, size_t len) override;
|
|
53
|
-
virtual size_t DoNext(void** ptr) = 0;
|
|
54
|
-
virtual void DoUndo(size_t len) = 0;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
/** @} */
|
package/inc/util/stream/zlib.h
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "fwd.h"
|
|
4
|
-
#include "input.h"
|
|
5
|
-
#include "output.h"
|
|
6
|
-
#include "buffered.h"
|
|
7
|
-
|
|
8
|
-
#include <util/system/defaults.h>
|
|
9
|
-
#include <util/generic/ptr.h>
|
|
10
|
-
#include <util/generic/yexception.h>
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @addtogroup Streams_Archs
|
|
14
|
-
* @{
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
struct TZLibError: public yexception {
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
struct TZLibCompressorError: public TZLibError {
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
struct TZLibDecompressorError: public TZLibError {
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
namespace ZLib {
|
|
27
|
-
enum StreamType : ui8 {
|
|
28
|
-
Auto = 0, /**< Auto detect format. Can be used for decompression only. */
|
|
29
|
-
ZLib = 1,
|
|
30
|
-
GZip = 2,
|
|
31
|
-
Raw = 3,
|
|
32
|
-
Invalid = 4
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
enum {
|
|
36
|
-
ZLIB_BUF_LEN = 8 * 1024
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Non-buffered ZLib decompressing stream.
|
|
42
|
-
*
|
|
43
|
-
* Please don't use `TZLibDecompress` if you read text data from stream using
|
|
44
|
-
* `ReadLine`, it is VERY slow (approx 10 times slower, according to synthetic
|
|
45
|
-
* benchmark). For fast buffered ZLib stream reading use `TBufferedZLibDecompress`
|
|
46
|
-
* aka `TZDecompress`.
|
|
47
|
-
*/
|
|
48
|
-
class TZLibDecompress: public IInputStream {
|
|
49
|
-
public:
|
|
50
|
-
TZLibDecompress(IZeroCopyInput* input, ZLib::StreamType type = ZLib::Auto, TStringBuf dict = {});
|
|
51
|
-
TZLibDecompress(IInputStream* input, ZLib::StreamType type = ZLib::Auto, size_t buflen = ZLib::ZLIB_BUF_LEN,
|
|
52
|
-
TStringBuf dict = {});
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Allows/disallows multiple sequential compressed streams. Allowed by default.
|
|
56
|
-
*
|
|
57
|
-
* If multiple streams are allowed, their decompressed content will be concatenated.
|
|
58
|
-
* If multiple streams are disabled, then only first stream is decompressed. After that end
|
|
59
|
-
* of IInputStream will have happen, i.e. method Read() will return 0.
|
|
60
|
-
*
|
|
61
|
-
* @param allowMultipleStreams - flag to allow (true) or disable (false) multiple streams.
|
|
62
|
-
*/
|
|
63
|
-
void SetAllowMultipleStreams(bool allowMultipleStreams);
|
|
64
|
-
|
|
65
|
-
~TZLibDecompress() override;
|
|
66
|
-
|
|
67
|
-
protected:
|
|
68
|
-
size_t DoRead(void* buf, size_t size) override;
|
|
69
|
-
|
|
70
|
-
public:
|
|
71
|
-
class TImpl;
|
|
72
|
-
THolder<TImpl> Impl_;
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Non-buffered ZLib compressing stream.
|
|
77
|
-
*/
|
|
78
|
-
class TZLibCompress: public IOutputStream {
|
|
79
|
-
public:
|
|
80
|
-
struct TParams {
|
|
81
|
-
inline TParams(IOutputStream* out)
|
|
82
|
-
: Out(out)
|
|
83
|
-
, Type(ZLib::ZLib)
|
|
84
|
-
, CompressionLevel(6)
|
|
85
|
-
, BufLen(ZLib::ZLIB_BUF_LEN)
|
|
86
|
-
{
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
inline TParams& SetType(ZLib::StreamType type) noexcept {
|
|
90
|
-
Type = type;
|
|
91
|
-
|
|
92
|
-
return *this;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
inline TParams& SetCompressionLevel(size_t level) noexcept {
|
|
96
|
-
CompressionLevel = level;
|
|
97
|
-
|
|
98
|
-
return *this;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
inline TParams& SetBufLen(size_t buflen) noexcept {
|
|
102
|
-
BufLen = buflen;
|
|
103
|
-
|
|
104
|
-
return *this;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
inline TParams& SetDict(const TStringBuf dict) noexcept {
|
|
108
|
-
Dict = dict;
|
|
109
|
-
|
|
110
|
-
return *this;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
IOutputStream* Out;
|
|
114
|
-
ZLib::StreamType Type;
|
|
115
|
-
size_t CompressionLevel;
|
|
116
|
-
size_t BufLen;
|
|
117
|
-
TStringBuf Dict;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
inline TZLibCompress(const TParams& params) {
|
|
121
|
-
Init(params);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
inline TZLibCompress(IOutputStream* out, ZLib::StreamType type) {
|
|
125
|
-
Init(TParams(out).SetType(type));
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
inline TZLibCompress(IOutputStream* out, ZLib::StreamType type, size_t compression_level) {
|
|
129
|
-
Init(TParams(out).SetType(type).SetCompressionLevel(compression_level));
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
inline TZLibCompress(IOutputStream* out, ZLib::StreamType type, size_t compression_level, size_t buflen) {
|
|
133
|
-
Init(TParams(out).SetType(type).SetCompressionLevel(compression_level).SetBufLen(buflen));
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
~TZLibCompress() override;
|
|
137
|
-
|
|
138
|
-
private:
|
|
139
|
-
void Init(const TParams& opts);
|
|
140
|
-
|
|
141
|
-
void DoWrite(const void* buf, size_t size) override;
|
|
142
|
-
void DoFlush() override;
|
|
143
|
-
void DoFinish() override;
|
|
144
|
-
|
|
145
|
-
public:
|
|
146
|
-
class TImpl;
|
|
147
|
-
|
|
148
|
-
/** To allow inline constructors. */
|
|
149
|
-
struct TDestruct {
|
|
150
|
-
static void Destroy(TImpl* impl);
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
THolder<TImpl, TDestruct> Impl_;
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Buffered ZLib decompressing stream.
|
|
158
|
-
*
|
|
159
|
-
* Supports efficient `ReadLine` calls and similar "reading in small pieces"
|
|
160
|
-
* usage patterns.
|
|
161
|
-
*/
|
|
162
|
-
class TBufferedZLibDecompress: public TBuffered<TZLibDecompress> {
|
|
163
|
-
public:
|
|
164
|
-
template <class T>
|
|
165
|
-
inline TBufferedZLibDecompress(T* in, ZLib::StreamType type = ZLib::Auto, size_t buf = 1 << 13)
|
|
166
|
-
: TBuffered<TZLibDecompress>(buf, in, type)
|
|
167
|
-
{
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
~TBufferedZLibDecompress() override;
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
/** @} */
|