Browse Source

YT-22593: Switch to std::string in TSecurityManager
67e522b085acbd31d2e74ebee17799f8d6087da4

babenko 6 months ago
parent
commit
bd13d270bc

+ 7 - 7
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_);
 

+ 2 - 3
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;
 };
 
 ////////////////////////////////////////////////////////////////////////////////

+ 12 - 0
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)
 {

+ 6 - 0
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);