Beamable SDK
Classes | Public Member Functions | Public Attributes | Static Public Attributes | Properties | Events | List of all members
Beamable.Server.Editor.MicroserviceReflectionCache.Registry Class Reference
Inheritance diagram for Beamable.Server.Editor.MicroserviceReflectionCache.Registry:
Inheritance graph
[legend]
Collaboration diagram for Beamable.Server.Editor.MicroserviceReflectionCache.Registry:
Collaboration graph
[legend]

Public Member Functions

void SetStorage (IBeamHintGlobalStorage hintGlobalStorage)
 Injection point for reflections systems that wish to generate hints. Leave without implementation if no hints are generated. Remember to wrap hint code in "#if UNITY_EDITOR" directives as this storage instance is null during non-editor builds. More...
 
void ClearCachedReflectionData ()
 Called once on each IReflectionSystem before building the reflection cache. Exists mostly to deal with the fact that Unity's initialization hooks are weird and seem to trigger twice when entering playmode. More...
 
void OnSetupForCacheGeneration ()
 Called once on each IReflectionSystem before building the reflection cache. More...
 
void OnReflectionCacheBuilt (PerBaseTypeCache perBaseTypeCache, PerAttributeCache perAttributeCache)
 Called once per ReflectionCache.GenerateReflectionCache invocation after the assembly sweep ReflectionCache.RebuildReflectionCache is completed. More...
 
void OnBaseTypeOfInterestFound (BaseTypeOfInterest baseType, IReadOnlyList< MemberInfo > cachedSubTypes)
 Called once per declared IReflectionTypeProvider.BaseTypesOfInterest with each base type and the cached list of types for which Type.IsAssignableFrom returns true. More...
 
void OnAttributeOfInterestFound (AttributeOfInterest attributeType, IReadOnlyList< MemberAttribute > cachedMemberAttributes)
 Called once per declared IReflectionTypeProvider.AttributesOfInterest. More...
 
async System.Threading.Tasks.Task Deploy (ManifestModel model, CancellationToken token, Action< IDescriptor > onServiceDeployed=null, Action< LogMessage > logger=null)
 
void MicroserviceCreated (string serviceName)
 
Promise< ManifestModelGenerateUploadModel ()
 
async Promise< Dictionary< string, string > > GetConnectionStringEnvironmentVariables (MicroserviceDescriptor service)
 
async Promise< string > GetConnectionString (StorageObjectDescriptor storage)
 
MicroserviceBuilder GetServiceBuilder (MicroserviceDescriptor descriptor)
 
MongoStorageBuilder GetStorageBuilder (StorageObjectDescriptor descriptor)
 

Public Attributes

readonly List< StorageObjectDescriptorStorageDescriptors = new List<StorageObjectDescriptor>()
 
readonly List< MicroserviceDescriptorDescriptors = new List<MicroserviceDescriptor>()
 
readonly List< IDescriptorAllDescriptors = new List<IDescriptor>()
 

Static Public Attributes

const string SERVICE_PUBLISHED_KEY = "service_published_{0}"
 

Properties

List< BaseTypeOfInterestBaseTypesOfInterest [get]
 
List< AttributeOfInterestAttributesOfInterest [get]
 
- Properties inherited from Beamable.Common.Reflection.IReflectionTypeProvider
List< BaseTypeOfInterestBaseTypesOfInterest [get]
 List of BaseTypeOfInterest this provider adds to the assembly sweep.
 
List< AttributeOfInterestAttributesOfInterest [get]
 List of AttributeOfInterest this provider adds to the assembly sweep.
 

Events

Action< ManifestModel, int > OnBeforeDeploy
 
Action< ManifestModel, int > OnDeploySuccess
 
Action< ManifestModel, string > OnDeployFailed
 
Action< IDescriptor, ServicePublishState > OnServiceDeployStatusChanged
 
Action< IDescriptorOnServiceDeployProgress
 

Member Function Documentation

◆ ClearCachedReflectionData()

void Beamable.Server.Editor.MicroserviceReflectionCache.Registry.ClearCachedReflectionData ( )
inline

Called once on each IReflectionSystem before building the reflection cache. Exists mostly to deal with the fact that Unity's initialization hooks are weird and seem to trigger twice when entering playmode.

Implements Beamable.Common.Reflection.IReflectionSystem.

◆ OnAttributeOfInterestFound()

void Beamable.Server.Editor.MicroserviceReflectionCache.Registry.OnAttributeOfInterestFound ( AttributeOfInterest  attributeType,
IReadOnlyList< MemberAttribute cachedMemberAttributes 
)
inline

Called once per declared IReflectionTypeProvider.AttributesOfInterest.

Parameters
attributeTypeThe attribute type of interest.
cachedMemberAttributesThe list of all MemberInfo and Attribute instances matching attributeType that were found in the assembly sweep.

Implements Beamable.Common.Reflection.IReflectionSystem.

◆ OnBaseTypeOfInterestFound()

void Beamable.Server.Editor.MicroserviceReflectionCache.Registry.OnBaseTypeOfInterestFound ( BaseTypeOfInterest  baseType,
IReadOnlyList< MemberInfo >  cachedSubTypes 
)
inline

Called once per declared IReflectionTypeProvider.BaseTypesOfInterest with each base type and the cached list of types for which Type.IsAssignableFrom returns true.

Parameters
baseTypeThe base type of interest.
cachedSubTypesThe list of types for which Type.IsAssignableFrom returns true.

Implements Beamable.Common.Reflection.IReflectionSystem.

◆ OnReflectionCacheBuilt()

void Beamable.Server.Editor.MicroserviceReflectionCache.Registry.OnReflectionCacheBuilt ( PerBaseTypeCache  perBaseTypeCache,
PerAttributeCache  perAttributeCache 
)
inline

Called once per ReflectionCache.GenerateReflectionCache invocation after the assembly sweep ReflectionCache.RebuildReflectionCache is completed.

Parameters
perBaseTypeCacheCurrent cached Per-Base Type information.
perAttributeCacheCurrently cached Per-Attribute information.

Implements Beamable.Common.Reflection.IReflectionSystem.

◆ OnSetupForCacheGeneration()

void Beamable.Server.Editor.MicroserviceReflectionCache.Registry.OnSetupForCacheGeneration ( )
inline

Called once on each IReflectionSystem before building the reflection cache.

Implements Beamable.Common.Reflection.IReflectionSystem.

◆ SetStorage()

void Beamable.Server.Editor.MicroserviceReflectionCache.Registry.SetStorage ( IBeamHintGlobalStorage  hintGlobalStorage)

Injection point for reflections systems that wish to generate hints. Leave without implementation if no hints are generated. Remember to wrap hint code in "#if UNITY_EDITOR" directives as this storage instance is null during non-editor builds.

Implements Beamable.Common.Reflection.IReflectionSystem.


The documentation for this class was generated from the following file: