Skip to content

Commit db30d96

Browse files
ildar-khisambeevGazizonoki
authored andcommitted
Moved "fix arcadia linkage and recurse" commit from ydb repo
1 parent bd170a8 commit db30d96

File tree

5 files changed

+72
-5
lines changed

5 files changed

+72
-5
lines changed

src/client/persqueue_core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ add_library(cpp-client-ydb_persqueue_core INTERFACE)
55

66
target_link_libraries(cpp-client-ydb_persqueue_core INTERFACE
77
cpp-client-ydb_persqueue_public
8+
client-ydb_persqueue_core-impl
89
)
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
add_library(client-ydb_persqueue_core-impl INTERFACE)
1+
add_library(client-ydb_persqueue_core-impl)
22

3-
target_link_libraries(client-ydb_persqueue_core-impl INTERFACE
3+
target_link_libraries(client-ydb_persqueue_core-impl PUBLIC
4+
yutil
45
client-ydb_topic-impl
56
)
7+
8+
target_sources(client-ydb_persqueue_core-impl PRIVATE
9+
common.cpp
10+
)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#include "common.h"
2+
3+
#include <src/util/charset/unidata.h>
4+
5+
namespace NYdb::NPersQueue {
6+
7+
ERetryErrorClass GetRetryErrorClass(EStatus status) {
8+
switch (status) {
9+
case EStatus::SUCCESS: // NoRetry?
10+
case EStatus::INTERNAL_ERROR: // NoRetry?
11+
case EStatus::ABORTED:
12+
case EStatus::UNAVAILABLE:
13+
case EStatus::GENERIC_ERROR: // NoRetry?
14+
case EStatus::BAD_SESSION: // NoRetry?
15+
case EStatus::SESSION_EXPIRED:
16+
case EStatus::CANCELLED:
17+
case EStatus::UNDETERMINED:
18+
case EStatus::SESSION_BUSY:
19+
case EStatus::CLIENT_INTERNAL_ERROR:
20+
case EStatus::CLIENT_CANCELLED:
21+
case EStatus::CLIENT_OUT_OF_RANGE:
22+
return ERetryErrorClass::ShortRetry;
23+
24+
case EStatus::OVERLOADED:
25+
case EStatus::TIMEOUT:
26+
case EStatus::TRANSPORT_UNAVAILABLE:
27+
case EStatus::CLIENT_RESOURCE_EXHAUSTED:
28+
case EStatus::CLIENT_DEADLINE_EXCEEDED:
29+
case EStatus::CLIENT_LIMITS_REACHED:
30+
case EStatus::CLIENT_DISCOVERY_FAILED:
31+
return ERetryErrorClass::LongRetry;
32+
33+
case EStatus::SCHEME_ERROR:
34+
case EStatus::STATUS_UNDEFINED:
35+
case EStatus::BAD_REQUEST:
36+
case EStatus::UNAUTHORIZED:
37+
case EStatus::PRECONDITION_FAILED:
38+
case EStatus::UNSUPPORTED:
39+
case EStatus::ALREADY_EXISTS:
40+
case EStatus::NOT_FOUND:
41+
case EStatus::EXTERNAL_ERROR:
42+
case EStatus::CLIENT_UNAUTHENTICATED:
43+
case EStatus::CLIENT_CALL_UNIMPLEMENTED:
44+
return ERetryErrorClass::NoRetry;
45+
}
46+
}
47+
48+
ERetryErrorClass GetRetryErrorClassV2(EStatus status) {
49+
switch (status) {
50+
case EStatus::SCHEME_ERROR:
51+
return ERetryErrorClass::NoRetry;
52+
default:
53+
return GetRetryErrorClass(status);
54+
55+
}
56+
}
57+
58+
} // namespace NYdb::NPersQueue
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#pragma once
22

3-
#include <src/client/topic/impl/common.h>
3+
#include <ydb-cpp-sdk/client/types/status_codes.h>
4+
5+
#include <src/library/retry/retry.h>
46

57
namespace NYdb::NPersQueue {
6-
using NTopic::GetRetryErrorClass;
7-
using NTopic::GetRetryErrorClassV2;
8+
ERetryErrorClass GetRetryErrorClass(EStatus status);
9+
ERetryErrorClass GetRetryErrorClassV2(EStatus status);
810
}

src/client/persqueue_core/persqueue.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
#pragma once
22

33
#include <src/client/persqueue_public/persqueue.h>
4+
#include <src/client/persqueue_core/impl/common.h>

0 commit comments

Comments
 (0)