aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbabenko <babenko@yandex-team.com>2024-08-18 10:00:13 +0300
committerbabenko <babenko@yandex-team.com>2024-08-18 10:10:05 +0300
commitbd13d270bcc26bd10bd4a0e101800ab535bc50d1 (patch)
tree05ffdbe81a23d7a2ac32dcebfcecfe12730adc79
parentf70011464d75aca9b6fac6bf51b3cf1b8060a25b (diff)
downloadydb-bd13d270bcc26bd10bd4a0e101800ab535bc50d1.tar.gz
YT-22593: Switch to std::string in TSecurityManager
67e522b085acbd31d2e74ebee17799f8d6087da4
-rw-r--r--yt/yt/core/misc/fair_scheduler-inl.h14
-rw-r--r--yt/yt/core/misc/fair_scheduler.h5
-rw-r--r--yt/yt/core/ytree/serialize.cpp12
-rw-r--r--yt/yt/core/ytree/serialize.h6
4 files changed, 27 insertions, 10 deletions
diff --git a/yt/yt/core/misc/fair_scheduler-inl.h b/yt/yt/core/misc/fair_scheduler-inl.h
index fff2a2c26c..7de98c82d1 100644
--- a/yt/yt/core/misc/fair_scheduler-inl.h
+++ b/yt/yt/core/misc/fair_scheduler-inl.h
@@ -20,7 +20,7 @@ class TFairScheduler
: public IFairScheduler<TTask>
{
public:
- void Enqueue(TTask task, const TString& user) override
+ void Enqueue(TTask task, const std::string& user) override
{
auto guard = Guard(Lock_);
@@ -84,7 +84,7 @@ public:
return BucketHeap_.empty();
}
- void ChargeUser(const TString& user, TDuration time) override
+ void ChargeUser(const std::string& user, TDuration time) override
{
auto guard = Guard(Lock_);
@@ -99,11 +99,11 @@ private:
struct TUserBucket
{
- explicit TUserBucket(TString userName)
- : UserName(std::move(userName))
+ explicit TUserBucket(const std::string& userName)
+ : UserName(userName)
{ }
- TString UserName;
+ std::string UserName;
TDuration ExcessTime;
//! Typically equals ExcessTime; however when a user is charged we just update ExcessTime
//! and leave HeapKey intact. Upon extracting heap's top we check if its ExcessTime matches its HeapKey
@@ -121,14 +121,14 @@ private:
}
};
- THashMap<TString, TUserBucket> NameToUserBucket_;
+ THashMap<std::string, TUserBucket> NameToUserBucket_;
TDuration ExcessBaseline_;
//! Min-heap ordered by TUserBucket::ExcessTime.
//! A bucket is only present here iff it has at least one task.
std::vector<TUserBucket*> BucketHeap_;
- TUserBucket* GetOrCreateBucket(const TString& userName)
+ TUserBucket* GetOrCreateBucket(const std::string& userName)
{
VERIFY_SPINLOCK_AFFINITY(Lock_);
diff --git a/yt/yt/core/misc/fair_scheduler.h b/yt/yt/core/misc/fair_scheduler.h
index 7f7d607667..3f32fabde3 100644
--- a/yt/yt/core/misc/fair_scheduler.h
+++ b/yt/yt/core/misc/fair_scheduler.h
@@ -10,13 +10,12 @@ template <class TTask>
struct IFairScheduler
: public TRefCounted
{
- virtual void Enqueue(TTask task, const TString& user) = 0;
-
+ virtual void Enqueue(TTask task, const std::string& user) = 0;
virtual TTask Dequeue() = 0;
virtual bool IsEmpty() const = 0;
- virtual void ChargeUser(const TString& user, TDuration time) = 0;
+ virtual void ChargeUser(const std::string& user, TDuration time) = 0;
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/core/ytree/serialize.cpp b/yt/yt/core/ytree/serialize.cpp
index 8476a92b7e..13a118efd8 100644
--- a/yt/yt/core/ytree/serialize.cpp
+++ b/yt/yt/core/ytree/serialize.cpp
@@ -113,6 +113,12 @@ void Serialize(double value, IYsonConsumer* consumer)
consumer->OnDoubleScalar(value);
}
+// std::string
+void Serialize(const std::string& value, IYsonConsumer* consumer)
+{
+ consumer->OnStringScalar(value);
+}
+
// TString
void Serialize(const TString& value, IYsonConsumer* consumer)
{
@@ -232,6 +238,12 @@ void Deserialize(double& value, INodePtr node)
}
}
+// std::string
+void Deserialize(std::string& value, INodePtr node)
+{
+ value = node->AsString()->GetValue();
+}
+
// TString
void Deserialize(TString& value, INodePtr node)
{
diff --git a/yt/yt/core/ytree/serialize.h b/yt/yt/core/ytree/serialize.h
index 633507dce5..3aa784ac8d 100644
--- a/yt/yt/core/ytree/serialize.h
+++ b/yt/yt/core/ytree/serialize.h
@@ -75,6 +75,9 @@ void Serialize(unsigned long long value, NYson::IYsonConsumer* consumer);
// double
void Serialize(double value, NYson::IYsonConsumer* consumer);
+// std::string
+void Serialize(const std::string& value, NYson::IYsonConsumer* consumer);
+
// TString
void Serialize(const TString& value, NYson::IYsonConsumer* consumer);
@@ -190,6 +193,9 @@ void Deserialize(unsigned long long& value, INodePtr node);
// double
void Deserialize(double& value, INodePtr node);
+// std::string
+void Deserialize(std::string& value, INodePtr node);
+
// TString
void Deserialize(TString& value, INodePtr node);