in releases/go/mpl/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go [1460:1595]
func (_static *CompanionStruct_Default___) CreateCryptographicMaterialsCache(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) m_Wrappers.Result {
var output m_Wrappers.Result = m_Wrappers.Result{}
_ = output
var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = (input).Dtor_cache()
_ = _source0
{
{
if _source0.Is_Default() {
var _0_c m_AwsCryptographyMaterialProvidersTypes.DefaultCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Default).Default
_ = _0_c
var _1_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache
_ = _1_cache
var _2_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = m_StormTracker.Companion_Default___.DefaultStorm()
_ = _2_dt__update__tmp_h0
var _3_dt__update_hentryCapacity_h0 int32 = (_0_c).Dtor_entryCapacity()
_ = _3_dt__update_hentryCapacity_h0
_1_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_(_3_dt__update_hentryCapacity_h0, (_2_dt__update__tmp_h0).Dtor_entryPruningTailSize(), (_2_dt__update__tmp_h0).Dtor_gracePeriod(), (_2_dt__update__tmp_h0).Dtor_graceInterval(), (_2_dt__update__tmp_h0).Dtor_fanOut(), (_2_dt__update__tmp_h0).Dtor_inFlightTTL(), (_2_dt__update__tmp_h0).Dtor_sleepMilli(), (_2_dt__update__tmp_h0).Dtor_timeUnits())
var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
_ = _4_valueOrError0
_4_valueOrError0 = m_StormTracker.Companion_Default___.CheckSettings(_1_cache)
if (_4_valueOrError0).IsFailure() {
output = (_4_valueOrError0).PropagateFailure()
return output
}
var _5_cmc *m_StormTracker.StormTracker
_ = _5_cmc
var _nw0 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_()
_ = _nw0
_nw0.Ctor__(_1_cache)
_5_cmc = _nw0
var _6_synCmc *m_StormTrackingCMC.StormTrackingCMC
_ = _6_synCmc
var _nw1 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_5_cmc)
_ = _nw1
_6_synCmc = _nw1
output = m_Wrappers.Companion_Result_.Create_Success_(_6_synCmc)
return output
goto Lmatch0
}
}
{
if _source0.Is_No() {
var _7_cmc *m_LocalCMC.LocalCMC
_ = _7_cmc
var _nw2 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_()
_ = _nw2
_nw2.Ctor__(_dafny.Zero, _dafny.One)
_7_cmc = _nw2
output = m_Wrappers.Companion_Result_.Create_Success_(_7_cmc)
return output
goto Lmatch0
}
}
{
if _source0.Is_SingleThreaded() {
var _8_c m_AwsCryptographyMaterialProvidersTypes.SingleThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_SingleThreaded).SingleThreaded
_ = _8_c
var _9_cmc *m_LocalCMC.LocalCMC
_ = _9_cmc
var _nw3 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_()
_ = _nw3
_nw3.Ctor__(_dafny.IntOfInt32((_8_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_8_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32)))
_9_cmc = _nw3
output = m_Wrappers.Companion_Result_.Create_Success_(_9_cmc)
return output
goto Lmatch0
}
}
{
if _source0.Is_MultiThreaded() {
var _10_c m_AwsCryptographyMaterialProvidersTypes.MultiThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_MultiThreaded).MultiThreaded
_ = _10_c
var _11_cmc *m_LocalCMC.LocalCMC
_ = _11_cmc
var _nw4 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_()
_ = _nw4
_nw4.Ctor__(_dafny.IntOfInt32((_10_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_10_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32)))
_11_cmc = _nw4
var _12_synCmc *m_SynchronizedLocalCMC.SynchronizedLocalCMC
_ = _12_synCmc
var _nw5 *m_SynchronizedLocalCMC.SynchronizedLocalCMC = m_SynchronizedLocalCMC.New_SynchronizedLocalCMC_(_11_cmc)
_ = _nw5
_12_synCmc = _nw5
output = m_Wrappers.Companion_Result_.Create_Success_(_12_synCmc)
return output
goto Lmatch0
}
}
{
if _source0.Is_StormTracking() {
var _13_c m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_StormTracking).StormTracking
_ = _13_c
var _14_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache
_ = _14_cache
var _15_dt__update__tmp_h1 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _13_c
_ = _15_dt__update__tmp_h1
var _16_dt__update_hentryPruningTailSize_h0 m_Wrappers.Option = Companion_Default___.OptionalCountingNumber((_13_c).Dtor_entryPruningTailSize())
_ = _16_dt__update_hentryPruningTailSize_h0
_14_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_((_15_dt__update__tmp_h1).Dtor_entryCapacity(), _16_dt__update_hentryPruningTailSize_h0, (_15_dt__update__tmp_h1).Dtor_gracePeriod(), (_15_dt__update__tmp_h1).Dtor_graceInterval(), (_15_dt__update__tmp_h1).Dtor_fanOut(), (_15_dt__update__tmp_h1).Dtor_inFlightTTL(), (_15_dt__update__tmp_h1).Dtor_sleepMilli(), (_15_dt__update__tmp_h1).Dtor_timeUnits())
var _17_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
_ = _17_valueOrError1
_17_valueOrError1 = m_StormTracker.Companion_Default___.CheckSettings(_14_cache)
if (_17_valueOrError1).IsFailure() {
output = (_17_valueOrError1).PropagateFailure()
return output
}
var _18_cmc *m_StormTracker.StormTracker
_ = _18_cmc
var _nw6 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_()
_ = _nw6
_nw6.Ctor__(_14_cache)
_18_cmc = _nw6
var _19_synCmc *m_StormTrackingCMC.StormTrackingCMC
_ = _19_synCmc
var _nw7 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_18_cmc)
_ = _nw7
_19_synCmc = _nw7
output = m_Wrappers.Companion_Result_.Create_Success_(_19_synCmc)
return output
goto Lmatch0
}
}
{
var _20_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared
_ = _20_c
var _21_exception m_AwsCryptographyMaterialProvidersTypes.Error
_ = _21_exception
_21_exception = m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("CreateCryptographicMaterialsCache should never be called with Shared CacheType."))
output = m_Wrappers.Companion_Result_.Create_Failure_(_21_exception)
return output
}
goto Lmatch0
}
Lmatch0:
return output
}