Beamable SDK
Public Member Functions | Properties | List of all members
Beamable.Common.Assistant.IBeamHintGlobalStorage Interface Reference

Interface for the Global Storage — only exists to enable mocking for automated testing purposes so it'll acknowledge implementation details of the BeamHintGlobalStorage which is our implementation of this interface. Internally, we have one IBeamHintStorage for each User's hints and another one for Beamable's hints. As the number of generated hints a domain can produce grows, we split these macro-storages into one for each domain generated with BeamHintDomains.GenerateSubDomain and/or BeamHintDomains.GenerateBeamableDomain. This approach allows us to ensure we can move our internal data around to avoid slow-editor performance. More...

Inheritance diagram for Beamable.Common.Assistant.IBeamHintGlobalStorage:
Inheritance graph
[legend]
Collaboration diagram for Beamable.Common.Assistant.IBeamHintGlobalStorage:
Collaboration graph
[legend]

Public Member Functions

void BatchAddBeamHints (string domainOwner, IEnumerable< BeamHintHeader > headers, IEnumerable< object > hintContextObj)
 More performant version of IBeamHintStorage.AddOrReplaceHints(System.Collections.Generic.IEnumerable<Common.Runtime.BeamHints.BeamHintHeader>,System.Collections.Generic.IEnumerable<object>) for the global case. Call this if you know that all hints are either BeamHintDomains.IsBeamableDomain or BeamHintDomains.IsUserDomain. More...
 
void BatchAddBeamHints (string domainOwner, IEnumerable< BeamHint > hints)
 More performant version of IBeamHintStorage.AddOrReplaceHints(System.Collections.Generic.IEnumerable<Common.Runtime.BeamHints.BeamHint>) for the global case. Call this if you know that all hints are either BeamHintDomains.IsBeamableDomain or BeamHintDomains.IsUserDomain. More...
 
- Public Member Functions inherited from Beamable.Common.Assistant.IBeamHintStorage
void AddOrReplaceHint (BeamHintType type, string hintDomain, string uniqueId, object hintContextObj=null)
 Adds a hint to the storage. More...
 
void AddOrReplaceHint (BeamHintHeader header, object hintContextObj=null)
 Adds a hint to the storage. More...
 
void AddOrReplaceHints (IEnumerable< BeamHintHeader > headers, IEnumerable< object > hintContextObjs)
 Takes in two parallel IEnumerable<T> (same-length arrays) of BeamHintHeader/object pairs and add them to the storage. More...
 
void AddOrReplaceHints (IEnumerable< BeamHint > bakedHints)
 Adds the given BeamHints. More...
 
void RemoveHint (BeamHintHeader header)
 Removes the BeamHint identified by the header . More...
 
void RemoveHint (BeamHint hint)
 Removes the given hint from the storage. More...
 
void RemoveHints (IEnumerable< BeamHintHeader > headers)
 Removes the BeamHints identified by the given headers from the storage. More...
 
void RemoveHints (IEnumerable< BeamHint > hints)
 Removes the given hints from the storage. More...
 
int RemoveAllHints (IEnumerable< string > hintDomains, IEnumerable< string > hintIds)
 Removes all hints that Regex.Match(string) of any of the given hintDomains and hintIds . More...
 
int RemoveAllHints (BeamHintType type)
 Remove all hints of the given type . More...
 
int RemoveAllHints (string hintDomainRegex=".*", string idRegex=".*")
 Removes all hints that Regex.Match(string) of the given hintDomainRegex and idRegex . More...
 
BeamHint GetHint (BeamHintHeader header)
 Given a header , returns a BeamHint containing it's associated BeamHint.ContextObject. More...
 

Properties

IEnumerable< BeamHintAll [get]
 The combined hints of all internal IBeamHintStorages.
 
IBeamHintStorage UserDefinedStorage [get]
 User-defined domains go into this storage (see BeamHintDomains.IsUserDomain). Our Beamable Assistant UI continuously detects hints added to this storage automatically and displays it in a special section for User domains.
 
IBeamHintStorage BeamableStorage [get]
 Beamable-defined hints are stored here.
 
IEnumerable< BeamHintReflectionCacheHints [get]
 Contains the BeamHint for the entire BeamHintDomains.BEAM_REFLECTION_CACHE domain.
 
IEnumerable< BeamHintCSharpMSHints [get]
 Contains the BeamHints for the entire BeamHintDomains.BEAM_CSHARP_MICROSERVICES domain.
 
IEnumerable< BeamHintContentHints [get]
 Contains the BeamHints for the entire BeamHintDomains.BEAM_CONTENT domain.
 
IEnumerable< BeamHintAssistantHints [get]
 Contains the BeamHints for the entire BeamHintDomains.BEAM_ASSISTANT domain.
 

Detailed Description

Interface for the Global Storage — only exists to enable mocking for automated testing purposes so it'll acknowledge implementation details of the BeamHintGlobalStorage which is our implementation of this interface.

Internally, we have one IBeamHintStorage for each User's hints and another one for Beamable's hints. As the number of generated hints a domain can produce grows, we split these macro-storages into one for each domain generated with BeamHintDomains.GenerateSubDomain and/or BeamHintDomains.GenerateBeamableDomain.

This approach allows us to ensure we can move our internal data around to avoid slow-editor performance.

Member Function Documentation

◆ BatchAddBeamHints() [1/2]

void Beamable.Common.Assistant.IBeamHintGlobalStorage.BatchAddBeamHints ( string  domainOwner,
IEnumerable< BeamHint hints 
)

More performant version of IBeamHintStorage.AddOrReplaceHints(System.Collections.Generic.IEnumerable<Common.Runtime.BeamHints.BeamHint>) for the global case. Call this if you know that all hints are either BeamHintDomains.IsBeamableDomain or BeamHintDomains.IsUserDomain.

Parameters
domainOwnerEither BeamHintDomains.BEAM_DOMAIN_PREFIX or BeamHintDomains.USER_DOMAIN_PREFIX.
hintsThe BeamHints to add.

Implemented in Beamable.Common.Assistant.BeamHintGlobalStorage.

◆ BatchAddBeamHints() [2/2]

void Beamable.Common.Assistant.IBeamHintGlobalStorage.BatchAddBeamHints ( string  domainOwner,
IEnumerable< BeamHintHeader headers,
IEnumerable< object >  hintContextObj 
)

More performant version of IBeamHintStorage.AddOrReplaceHints(System.Collections.Generic.IEnumerable<Common.Runtime.BeamHints.BeamHintHeader>,System.Collections.Generic.IEnumerable<object>) for the global case. Call this if you know that all hints are either BeamHintDomains.IsBeamableDomain or BeamHintDomains.IsUserDomain.

Parameters
domainOwnerEither BeamHintDomains.BEAM_DOMAIN_PREFIX or BeamHintDomains.USER_DOMAIN_PREFIX.
headersList of headers to add. Parallel to hintContextObj .
hintContextObjList of context objects to add. Parallel to headers .

Implemented in Beamable.Common.Assistant.BeamHintGlobalStorage.


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