Home | History | Annotate | Download | only in include

Lines Matching refs:Traits

36  * Users will have to implement their own weak callbacks & dispose traits.
156 * by the Traits class. The backing map will handle values of type
160 template <typename K, typename V, typename Traits>
168 size_t Size() { return Traits::Size(&impl_); }
173 bool IsWeak() { return Traits::kCallbackType != kNotWeak; }
179 return Local<V>::New(isolate_, FromVal(Traits::Get(&impl_, key)));
186 return Traits::Get(&impl_, key) != kPersistentContainerNotFound;
195 return SetReturnValueFromVal(&returnValue, Traits::Get(&impl_, key));
205 reinterpret_cast<internal::Object**>(FromVal(Traits::Get(&impl_, key))));
215 reinterpret_cast<internal::Object**>(FromVal(Traits::Get(&impl_, key))),
223 return Release(Traits::Remove(&impl_, key)).Pass();
231 typedef typename Traits::Iterator It;
234 while (!Traits::Empty(&impl_)) {
235 typename Traits::Impl impl;
236 Traits::Swap(impl_, impl);
237 for (It i = Traits::Begin(&impl); i != Traits::End(&impl); ++i) {
238 Traits::Dispose(isolate_, Release(Traits::Value(i)).Pass(),
239 Traits::Key(i));
273 friend class PersistentValueMap<K, V, Traits>;
274 friend class GlobalValueMap<K, V, Traits>;
297 return PersistentValueReference(Traits::Get(&impl_, key));
306 typename Traits::Impl* impl() { return &impl_; }
330 if (Traits::kCallbackType != kNotWeak && p.IsWeak()) {
331 Traits::DisposeCallbackData(
332 p.template ClearWeak<typename Traits::WeakCallbackDataType>());
339 p.val_ = FromVal(Traits::Remove(&impl_, key));
358 typename Traits::Impl impl_;
362 template <typename K, typename V, typename Traits>
363 class PersistentValueMap : public PersistentValueMapBase<K, V, Traits> {
366 : PersistentValueMapBase<K, V, Traits>(isolate) {}
369 typename PersistentValueMapBase<K, V, Traits>::PersistentValueReference
373 * Put value into map. Depending on Traits::kIsWeak, the value will be held
391 * by the Traits class.
394 if (Traits::kCallbackType != kNotWeak) {
396 persistent->template SetWeak<typename Traits::WeakCallbackDataType>(
397 Traits::WeakCallbackParameter(this, key, value), WeakCallback);
400 Traits::Set(this->impl(), key, this->ClearAndLeak(persistent));
416 const WeakCallbackInfo<typename Traits::WeakCallbackDataType>& data) {
417 if (Traits::kCallbackType != kNotWeak) {
418 PersistentValueMap<K, V, Traits>* persistentValueMap =
419 Traits::MapFromWeakCallbackInfo(data);
420 K key = Traits::KeyFromWeakCallbackInfo(data);
421 Traits::Dispose(data.GetIsolate(),
423 Traits::DisposeCallbackData(data.GetParameter());
429 template <typename K, typename V, typename Traits>
430 class GlobalValueMap : public PersistentValueMapBase<K, V, Traits> {
433 : PersistentValueMapBase<K, V, Traits>(isolate) {}
436 typename PersistentValueMapBase<K, V, Traits>::PersistentValueReference
440 * Put value into map. Depending on Traits::kIsWeak, the value will be held
458 * by the Traits class.
461 if (Traits::kCallbackType != kNotWeak) {
463 Traits::kCallbackType == kWeakWithInternalFields
467 persistent->template SetWeak<typename Traits::WeakCallbackDataType>(
468 Traits::WeakCallbackParameter(this, key, value), OnWeakCallback,
472 Traits::Set(this->impl(), key, this->ClearAndLeak(persistent));
488 const WeakCallbackInfo<typename Traits::WeakCallbackDataType>& data) {
489 if (Traits::kCallbackType != kNotWeak) {
490 auto map = Traits::MapFromWeakCallbackInfo(data);
491 K key = Traits::KeyFromWeakCallbackInfo(data);
493 Traits::OnWeakCallback(data);
499 const WeakCallbackInfo<typename Traits::WeakCallbackDataType>& data) {
500 Traits::DisposeWeak(data);
513 typename Traits = DefaultPersistentValueMapTraits<K, V> >
514 Traits> {
517 : PersistentValueMap<K, V, Traits>(isolate) {}
529 typename Traits = DefaultGlobalMapTraits<K, V> >
530 class StdGlobalValueMap : public GlobalValueMap<K, V, Traits> {
533 : GlobalValueMap<K, V, Traits>(isolate) {}
568 * are described by the Traits class. The backing map will handle values of type
572 template<typename V, typename Traits = DefaultPersistentValueVectorTraits>
586 Traits::Append(&impl_, ClearAndLeak(&persistent));
593 Traits::Append(&impl_, ClearAndLeak(&persistent));
600 return Traits::IsEmpty(&impl_);
607 return Traits::Size(&impl_);
614 return Local<V>::New(isolate_, FromVal(Traits::Get(&impl_, index)));
621 size_t length = Traits::Size(&impl_);
624 p.val_ = FromVal(Traits::Get(&impl_, i));
626 Traits::Clear(&impl_);
634 Traits::ReserveCapacity(&impl_, capacity);
649 typename Traits::Impl impl_;