keycloak
クラス | 公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.models.sessions.infinispan.initializer.InitializerState クラス
org.keycloak.models.sessions.infinispan.initializer.InitializerState の継承関係図
Inheritance graph
org.keycloak.models.sessions.infinispan.initializer.InitializerState 連携図
Collaboration graph

クラス

class  ExternalizerImpl
 

公開メンバ関数

 InitializerState (int segmentsCount)
 
boolean isFinished ()
 
List< Integer > getUnfinishedSegments (int maxSegmentCount)
 
void markSegmentFinished (int index)
 
String toString ()
 
int hashCode ()
 
boolean equals (Object obj)
 
String getRealmId ()
 
void setRealmId (String realmId)
 
SessionEntityWrapper mergeRemoteEntityWithLocalEntity (SessionEntityWrapper localEntityWrapper)
 

非公開メンバ関数

 InitializerState (String realmId, int segmentsCount, BitSet segments)
 
void updateLowestUnfinishedSegment ()
 
int getNextUnfinishedSegmentFromIndex (int index)
 

非公開変数類

final int segmentsCount
 
final BitSet segments
 
int lowestUnfinishedSegment = 0
 

静的非公開変数類

static final Logger log = Logger.getLogger(InitializerState.class)
 

詳解

Note that this state is NOT thread safe. Currently it is only used from single thread so it's fine but further optimizations might need to revisit this (see InfinispanCacheInitializer).

著者
Marek Posolda

構築子と解体子

◆ InitializerState() [1/2]

org.keycloak.models.sessions.infinispan.initializer.InitializerState.InitializerState ( int  segmentsCount)
inline
49  {
51  this.segments = new BitSet(segmentsCount);
52 
53  log.debugf("segmentsCount: %d", segmentsCount);
54 
56  }
final BitSet segments
Definition: InitializerState.java:46
void updateLowestUnfinishedSegment()
Definition: InitializerState.java:97
static final Logger log
Definition: InitializerState.java:43
final int segmentsCount
Definition: InitializerState.java:45

◆ InitializerState() [2/2]

org.keycloak.models.sessions.infinispan.initializer.InitializerState.InitializerState ( String  realmId,
int  segmentsCount,
BitSet  segments 
)
inlineprivate
58  {
59  super(realmId);
61  this.segments = segments;
62 
63  log.debugf("segmentsCount: %d", segmentsCount);
64 
66  }
final BitSet segments
Definition: InitializerState.java:46
String realmId
Definition: SessionEntity.java:34
void updateLowestUnfinishedSegment()
Definition: InitializerState.java:97
static final Logger log
Definition: InitializerState.java:43
final int segmentsCount
Definition: InitializerState.java:45

関数詳解

◆ equals()

boolean org.keycloak.models.sessions.infinispan.initializer.InitializerState.equals ( Object  obj)
inline
127  {
128  if (this == obj) {
129  return true;
130  }
131  if (obj == null) {
132  return false;
133  }
134  if (getClass() != obj.getClass()) {
135  return false;
136  }
137  final InitializerState other = (InitializerState) obj;
138  if (this.segmentsCount != other.segmentsCount) {
139  return false;
140  }
141  if (this.lowestUnfinishedSegment != other.lowestUnfinishedSegment) {
142  return false;
143  }
144  if ( ! Objects.equals(this.segments, other.segments)) {
145  return false;
146  }
147  return true;
148  }
int lowestUnfinishedSegment
Definition: InitializerState.java:47
InitializerState(int segmentsCount)
Definition: InitializerState.java:49
final int segmentsCount
Definition: InitializerState.java:45

◆ getNextUnfinishedSegmentFromIndex()

int org.keycloak.models.sessions.infinispan.initializer.InitializerState.getNextUnfinishedSegmentFromIndex ( int  index)
inlineprivate
101  {
102  final int nextFreeSegment = this.segments.nextClearBit(index);
103  return (nextFreeSegment < this.segmentsCount)
104  ? nextFreeSegment
105  : -1;
106  }
final BitSet segments
Definition: InitializerState.java:46
final int segmentsCount
Definition: InitializerState.java:45

◆ getRealmId()

String org.keycloak.models.sessions.infinispan.entities.SessionEntity.getRealmId ( )
inlineinherited

Returns realmId ID.

戻り値
40  {
41  return realmId;
42  }
String realmId
Definition: SessionEntity.java:34

◆ getUnfinishedSegments()

List<Integer> org.keycloak.models.sessions.infinispan.initializer.InitializerState.getUnfinishedSegments ( int  maxSegmentCount)
inline

Return next un-finished segments. It returns at most

maxSegmentCount

segments.

74  {
75  List<Integer> result = new LinkedList<>();
76  int next = lowestUnfinishedSegment;
77  boolean remaining = lowestUnfinishedSegment != -1;
78 
79  while (remaining && result.size() < maxSegmentCount) {
81  if (next == -1) {
82  remaining = false;
83  } else {
84  result.add(next);
85  next++;
86  }
87  }
88 
89  return result;
90  }
int lowestUnfinishedSegment
Definition: InitializerState.java:47
int getNextUnfinishedSegmentFromIndex(int index)
Definition: InitializerState.java:101

◆ hashCode()

int org.keycloak.models.sessions.infinispan.initializer.InitializerState.hashCode ( )
inline
118  {
119  int hash = 3;
120  hash = 97 * hash + this.segmentsCount;
121  hash = 97 * hash + Objects.hashCode(this.segments);
122  hash = 97 * hash + this.lowestUnfinishedSegment;
123  return hash;
124  }
final BitSet segments
Definition: InitializerState.java:46
int lowestUnfinishedSegment
Definition: InitializerState.java:47
final int segmentsCount
Definition: InitializerState.java:45

◆ isFinished()

boolean org.keycloak.models.sessions.infinispan.initializer.InitializerState.isFinished ( )
inline

Return true just if computation is entirely finished (all segments are true)

69  {
70  return segments.cardinality() == segmentsCount;
71  }
final BitSet segments
Definition: InitializerState.java:46
final int segmentsCount
Definition: InitializerState.java:45

◆ markSegmentFinished()

void org.keycloak.models.sessions.infinispan.initializer.InitializerState.markSegmentFinished ( int  index)
inline
92  {
93  segments.set(index);
95  }
final BitSet segments
Definition: InitializerState.java:46
void updateLowestUnfinishedSegment()
Definition: InitializerState.java:97

◆ mergeRemoteEntityWithLocalEntity()

SessionEntityWrapper org.keycloak.models.sessions.infinispan.entities.SessionEntity.mergeRemoteEntityWithLocalEntity ( SessionEntityWrapper  localEntityWrapper)
inlineinherited
55  {
56  if (localEntityWrapper == null) {
57  return new SessionEntityWrapper<>(this);
58  } else {
59  return new SessionEntityWrapper<>(localEntityWrapper.getLocalMetadata(), this);
60  }
61  };

◆ setRealmId()

void org.keycloak.models.sessions.infinispan.entities.SessionEntity.setRealmId ( String  realmId)
inlineinherited
44  {
45  this.realmId = realmId;
46  }
String realmId
Definition: SessionEntity.java:34

◆ toString()

String org.keycloak.models.sessions.infinispan.initializer.InitializerState.toString ( )
inline
109  {
110  int finished = segments.cardinality();
111  int nonFinished = segmentsCount - finished;
112 
113  return "finished segments count: " + finished
114  + (", non-finished segments count: " + nonFinished);
115  }
final BitSet segments
Definition: InitializerState.java:46
final int segmentsCount
Definition: InitializerState.java:45

◆ updateLowestUnfinishedSegment()

void org.keycloak.models.sessions.infinispan.initializer.InitializerState.updateLowestUnfinishedSegment ( )
inlineprivate

メンバ詳解

◆ log

final Logger org.keycloak.models.sessions.infinispan.initializer.InitializerState.log = Logger.getLogger(InitializerState.class)
staticprivate

◆ lowestUnfinishedSegment

int org.keycloak.models.sessions.infinispan.initializer.InitializerState.lowestUnfinishedSegment = 0
private

◆ segments

final BitSet org.keycloak.models.sessions.infinispan.initializer.InitializerState.segments
private

◆ segmentsCount

final int org.keycloak.models.sessions.infinispan.initializer.InitializerState.segmentsCount
private

このクラス詳解は次のファイルから抽出されました: