Table of Contents

Class ManagerSource<T, TM>

Namespace
RisingV.Shared.Managers
Assembly
RisingV.Shared.dll

Represents a source of managers that can manage instances of type T.

public abstract class ManagerSource<T, TM> : IManagerSource<T, TM>, IManagerSource, ITypeSource<T>, ITypeSource where T : class, IManageable<TM> where TM : class, IManager

Type Parameters

T

Type of manageable instances.

TM

Type of the manager that manages instances of type T.

Inheritance
ManagerSource<T, TM>
Implements
Derived
Inherited Members
Extension Methods

Fields

Manager

protected TM? Manager

Field Value

TM

Properties

Log

protected abstract Logger Log { get; }

Property Value

Logger

Methods

Add<TX>(IPlugin, bool)

Add an object to the source of the type TX.

public virtual TX? Add<TX>(IPlugin plugin, bool failIfExists = true) where TX : T

Parameters

plugin IPlugin
failIfExists bool

Returns

TX

Type Parameters

TX

Add<TX>(IPlugin, Type, bool)

Get an object from the source.

public TX Add<TX>(IPlugin plugin, Type type, bool failIfExists = true) where TX : IManageable

Parameters

plugin IPlugin
type Type
failIfExists bool

Returns

TX

Type Parameters

TX

Add<TX>(IPlugin, TX, bool)

Add an object to the source.

public virtual void Add<TX>(IPlugin plugin, TX obj, bool failIfExists = true) where TX : T

Parameters

plugin IPlugin
obj TX
failIfExists bool

Type Parameters

TX

AssignManager(TM)

public void AssignManager(TM manager)

Parameters

manager TM

Count()

Get the count of objects in the source.

public abstract int Count()

Returns

int

ForEach(Action<T>)

Get an object from the source.

public abstract void ForEach(Action<T> action)

Parameters

action Action<T>

Get(Type, bool)

Get an object from the source.

public abstract T? Get(Type type, bool required = true)

Parameters

type Type
required bool

Returns

T

GetList()

Get all objects from the source.

public abstract List<T> GetList()

Returns

List<T>

GetManagedInfo()

Get information about the managed instances.

public abstract string GetManagedInfo()

Returns

string

GetOrCreate<TX>(IPlugin)

Get an object from the source or create and add if not.

public abstract TX GetOrCreate<TX>(IPlugin plugin) where TX : T

Parameters

plugin IPlugin

Returns

TX

Type Parameters

TX

Get<TX>(bool)

Get an object from the source.

public abstract TX? Get<TX>(bool required = true) where TX : T

Parameters

required bool

Returns

TX

Type Parameters

TX

Has(string, out IManageable?, bool)

Do we have a manageable of a type name.

public abstract bool Has(string typeName, out IManageable? manageable, bool checkAssignable = true)

Parameters

typeName string
manageable IManageable
checkAssignable bool

Returns

bool

Has(Type, out IManageable?, bool)

Do we have an object of the type TX in the source.

public abstract bool Has(Type type, out IManageable? manageable, bool checkAssignable = true)

Parameters

type Type
manageable IManageable
checkAssignable bool

Returns

bool

Has<TX>(out TX?)

Do we have an object of the type TX in the source.

public abstract bool Has<TX>(out TX? manageable) where TX : T

Parameters

manageable TX

Returns

bool

Type Parameters

TX

Remove<TX>(IPlugin)

Remove an object from the source.

public abstract void Remove<TX>(IPlugin plugin) where TX : T

Parameters

plugin IPlugin

Type Parameters

TX

Remove<TX>(IPlugin, TX)

Remove an object from the source.

public virtual void Remove<TX>(IPlugin plugin, TX obj) where TX : T

Parameters

plugin IPlugin
obj TX

Type Parameters

TX

RequiredType()

Get the type of the object that is required.

public Type RequiredType()

Returns

Type

RequiredTypeName()

Get the name of the type that is required.

public string RequiredTypeName()

Returns

string

Select(Func<KeyValuePair<Type, T>, T>)

Select an enumerable of objects from the source.

public abstract IEnumerable<T> Select(Func<KeyValuePair<Type, T>, T> selector)

Parameters

selector Func<KeyValuePair<Type, T>, T>

Returns

IEnumerable<T>