BadScript 2
Loading...
Searching...
No Matches
BadScript2.Runtime.BadExecutionContextOptions Class Reference

Provides settings for creating a new BadExecutionContext More...

Public Member Functions

 BadExecutionContextOptions (IEnumerable< BadInteropApi > apis)
 Creates a new instance of the BadExecutionContextOptions class.
 
 BadExecutionContextOptions (params BadInteropApi[] apis)
 Creates a new instance of the BadExecutionContextOptions class.
 
 BadExecutionContextOptions (IEnumerable< BadInteropApi > apis, IEnumerable< BadInteropExtension > extensions)
 Creates a new instance of the BadExecutionContextOptions class.
 
void AddExtension< T > ()
 Adds a new Extension to the context.
 
void AddExtensions (params BadInteropExtension[] extensions)
 Adds new Extensions to the context.
 
void AddExtension (BadInteropExtension extension)
 Adds a new Extension to the context.
 
void AddApi (BadInteropApi api)
 Adds a new Api to the context.
 
void AddOrReplaceApis (IEnumerable< BadInteropApi > apis)
 Adds or Replaces apis in the context.
 
void AddOrReplaceApi (BadInteropApi api)
 Adds or Replaces an api in the context.
 
void AddApis (IEnumerable< BadInteropApi > apis)
 Adds Apis to the context.
 
BadExecutionContext Build ()
 Builds a new BadExecutionContext with the options provided in this Options Instance.
 
BadExecutionContextOptions Clone ()
 Clones this BadExecutionContextOptions instance.
 

Properties

static BadExecutionContextOptions Empty [get]
 An Empty BadExecutionContextOptions instance.
 
IEnumerable< BadInteropApiApis [get]
 List of APIs that are loaded in the context.
 

Private Attributes

readonly List< BadInteropApim_Apis = new List<BadInteropApi>()
 List of APIs that are loaded in the context.
 
readonly List< BadInteropExtensionm_Extensions = new List<BadInteropExtension>()
 List of Extensions that are loaded in the context.
 

Detailed Description

Provides settings for creating a new BadExecutionContext

Definition at line 10 of file BadExecutionContextOptions.cs.

Constructor & Destructor Documentation

◆ BadExecutionContextOptions() [1/3]

BadScript2.Runtime.BadExecutionContextOptions.BadExecutionContextOptions ( IEnumerable< BadInteropApi apis)

Creates a new instance of the BadExecutionContextOptions class.

Parameters
apisApis that should be added.

Definition at line 26 of file BadExecutionContextOptions.cs.

27 {
28 m_Apis.AddRange(apis);
29 }
readonly List< BadInteropApi > m_Apis
List of APIs that are loaded in the context.

◆ BadExecutionContextOptions() [2/3]

BadScript2.Runtime.BadExecutionContextOptions.BadExecutionContextOptions ( params BadInteropApi[]  apis)

Creates a new instance of the BadExecutionContextOptions class.

Parameters
apisApis that should be added.

Definition at line 35 of file BadExecutionContextOptions.cs.

35: this((IEnumerable<BadInteropApi>)apis) { }

◆ BadExecutionContextOptions() [3/3]

BadScript2.Runtime.BadExecutionContextOptions.BadExecutionContextOptions ( IEnumerable< BadInteropApi apis,
IEnumerable< BadInteropExtension extensions 
)

Creates a new instance of the BadExecutionContextOptions class.

Parameters
apisApis that should be added.
extensionsExtensions that should be added.

Definition at line 42 of file BadExecutionContextOptions.cs.

44 : this(apis)
45 {
46 m_Extensions.AddRange(extensions);
47 }
readonly List< BadInteropExtension > m_Extensions
List of Extensions that are loaded in the context.

Member Function Documentation

◆ AddApi()

void BadScript2.Runtime.BadExecutionContextOptions.AddApi ( BadInteropApi  api)

Adds a new Api to the context.

Parameters
apiThe Api to add.

Definition at line 94 of file BadExecutionContextOptions.cs.

95 {
96 m_Apis.Add(api);
97 }

◆ AddApis()

void BadScript2.Runtime.BadExecutionContextOptions.AddApis ( IEnumerable< BadInteropApi apis)

Adds Apis to the context.

Parameters
apisThe Apis to add.

Definition at line 133 of file BadExecutionContextOptions.cs.

134 {
135 m_Apis.AddRange(apis);
136 }

◆ AddExtension()

void BadScript2.Runtime.BadExecutionContextOptions.AddExtension ( BadInteropExtension  extension)

Adds a new Extension to the context.

Parameters
extensionThe Extension to add.

Definition at line 85 of file BadExecutionContextOptions.cs.

86 {
87 m_Extensions.Add(extension);
88 }

◆ AddExtension< T >()

Adds a new Extension to the context.

Template Parameters
TThe Extension Type.
Type Constraints
T :BadInteropExtension 
T :new() 

Definition at line 63 of file BadExecutionContextOptions.cs.

63 : BadInteropExtension, new()
64 {
65 T t = new T();
66 AddExtension(t);
67 }
void AddExtension(BadInteropExtension extension)
Adds a new Extension to the context.
Public Extension API for the BS2 Runtime.

◆ AddExtensions()

void BadScript2.Runtime.BadExecutionContextOptions.AddExtensions ( params BadInteropExtension[]  extensions)

Adds new Extensions to the context.

Parameters
extensionsThe Extensions to add.

Definition at line 73 of file BadExecutionContextOptions.cs.

74 {
75 foreach (BadInteropExtension extension in extensions)
76 {
77 AddExtension(extension);
78 }
79 }

◆ AddOrReplaceApi()

void BadScript2.Runtime.BadExecutionContextOptions.AddOrReplaceApi ( BadInteropApi  api)

Adds or Replaces an api in the context.

Parameters
apiThe Api to add or replace.

Definition at line 115 of file BadExecutionContextOptions.cs.

116 {
117 int index = m_Apis.FindIndex(x => x.Name == api.Name);
118
119 if (index == -1)
120 {
121 AddApi(api);
122 }
123 else
124 {
125 m_Apis[index] = api;
126 }
127 }
void AddApi(BadInteropApi api)
Adds a new Api to the context.

◆ AddOrReplaceApis()

void BadScript2.Runtime.BadExecutionContextOptions.AddOrReplaceApis ( IEnumerable< BadInteropApi apis)

Adds or Replaces apis in the context.

Parameters
apisThe Apis to add or replace.

Definition at line 103 of file BadExecutionContextOptions.cs.

104 {
105 foreach (BadInteropApi api in apis)
106 {
107 AddOrReplaceApi(api);
108 }
109 }
void AddOrReplaceApi(BadInteropApi api)
Adds or Replaces an api in the context.
Implements an Interop API for the BS2 Language.

◆ Build()

BadExecutionContext BadScript2.Runtime.BadExecutionContextOptions.Build ( )

Builds a new BadExecutionContext with the options provided in this Options Instance.

Returns
The new BadExecutionContext

Definition at line 142 of file BadExecutionContextOptions.cs.

143 {
144 BadExecutionContext ctx = BadExecutionContext.Create(new BadInteropExtensionProvider(m_Extensions.ToArray()));
145
146 foreach (BadInteropApi api in m_Apis)
147 {
148 BadTable table;
149
150 if (ctx.Scope.HasLocal(api.Name, ctx.Scope) && ctx.Scope.GetVariable(api.Name).Dereference() is BadTable t)
151 {
152 table = t;
153 }
154 else
155 {
156 table = new BadTable();
157 ctx.Scope.DefineVariable(api.Name, table);
158 }
159
160 api.Load(ctx, table);
161 }
162
164 {
165 ctx.Scope.DefineVariable(type.Name, type);
166 }
167
168
169 return ctx;
170 }
void Load(BadExecutionContext ctx, BadTable table)
Loads the API into the given Table.
Implements a Table Structure for the BadScript Language.
Definition BadTable.cs:14
Implements a Class Prototype for the BadScript Language.
Helper Class that Builds a Native Class from a Prototype.
static IEnumerable< BadClassPrototype > NativeTypes
Enumeration of all Native Class Prototypes.

◆ Clone()

BadExecutionContextOptions BadScript2.Runtime.BadExecutionContextOptions.Clone ( )

Clones this BadExecutionContextOptions instance.

Returns
The cloned instance.

Definition at line 176 of file BadExecutionContextOptions.cs.

177 {
179 }
BadExecutionContextOptions(IEnumerable< BadInteropApi > apis)
Creates a new instance of the BadExecutionContextOptions class.

Member Data Documentation

◆ m_Apis

readonly List<BadInteropApi> BadScript2.Runtime.BadExecutionContextOptions.m_Apis = new List<BadInteropApi>()
private

List of APIs that are loaded in the context.

Definition at line 15 of file BadExecutionContextOptions.cs.

◆ m_Extensions

readonly List<BadInteropExtension> BadScript2.Runtime.BadExecutionContextOptions.m_Extensions = new List<BadInteropExtension>()
private

List of Extensions that are loaded in the context.

Definition at line 20 of file BadExecutionContextOptions.cs.

Property Documentation

◆ Apis

IEnumerable<BadInteropApi> BadScript2.Runtime.BadExecutionContextOptions.Apis
get

List of APIs that are loaded in the context.

Definition at line 57 of file BadExecutionContextOptions.cs.

◆ Empty

BadExecutionContextOptions BadScript2.Runtime.BadExecutionContextOptions.Empty
staticget

An Empty BadExecutionContextOptions instance.

Definition at line 52 of file BadExecutionContextOptions.cs.


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