Skip to content

Commit 70ddd5b

Browse files
author
David Kline (ANALOG)
committed
implement registrar data provider methods in svc locator. all current tests pass
1 parent cb1c562 commit 70ddd5b

File tree

2 files changed

+20
-31
lines changed

2 files changed

+20
-31
lines changed

Assets/MixedRealityToolkit/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ bool RegisterService<T>(
4949
/// <typeparam name="T">The interface type of the service to be unregistered (ex: IMixedRealityBoundarySystem).
5050
/// <param name="service">The specific service instance to unregister.</param>
5151
/// <returns>True if the service was successfully unregistered, false otherwise.</returns>
52-
bool UnregisterService<T>(IMixedRealityService serviceInstance) where T : IMixedRealityService;
52+
bool UnregisterService<T>(T serviceInstance) where T : IMixedRealityService;
5353

5454
/// <summary>
5555
/// Checks to see if a service of the specified type has been registered.
@@ -73,7 +73,7 @@ bool RegisterService<T>(
7373
/// </summary>
7474
/// <typeparam name="T">The interface type of the service (ex: IMixedRealityBoundarySystem).
7575
/// <param name="name">Friendly name of the service.</param>
76-
/// <returns>Read-only collection of the service instances, as tye requested type.</returns>
76+
/// <returns>Read-only collection of the service instances, as the requested type.</returns>
7777
IReadOnlyList<T> GetServices<T>(string name = null) where T : IMixedRealityService;
7878

7979
#endregion IMixedRealityServce registration
@@ -85,7 +85,7 @@ bool RegisterService<T>(
8585
/// </summary>
8686
/// <typeparam name="T">The interface type of the data provider to be registered.</typeparam>
8787
/// <param name="dataProviderInstance">An instance of the data provider to be registered.</param>
88-
bool RegisterDataProvider<T>(IMixedRealityDataProvider dataProviderInstance) where T : IMixedRealityDataProvider;
88+
bool RegisterDataProvider<T>(T dataProviderInstance) where T : IMixedRealityDataProvider;
8989

9090
/// <summary>
9191
/// Registers a data provider of the specified type.
@@ -112,7 +112,7 @@ bool RegisterDataProvider<T>(
112112
/// <typeparam name="T">The interface type of the data provider to be unregistered.
113113
/// <param name="service">The specific data provider instance to unregister.</param>
114114
/// <returns>True if the data provider was successfully unregistered, false otherwise.</returns>
115-
bool UnregisterDataProvider<T>(IMixedRealityDataProvider dataProviderInstance) where T : IMixedRealityDataProvider;
115+
bool UnregisterDataProvider<T>(T dataProviderInstance) where T : IMixedRealityDataProvider;
116116

117117
/// <summary>
118118
/// Checks to see if a data provider of the specified type has been registered.
@@ -130,18 +130,13 @@ bool RegisterDataProvider<T>(
130130
/// <returns>The registered data provider instance as the requested type.</returns>
131131
T GetDataProvider<T>(string name = null) where T : IMixedRealityDataProvider;
132132

133-
/// <summary>
134-
/// Gets the collection of the registered data provider instances matching the requested type.
135-
/// </summary>
136-
/// <returns>Read-only collection of the data provider instances, as IMixedRealitydata provider.</returns>
137-
IReadOnlyList<IMixedRealityDataProvider> GetDataProviders();
138-
139133
/// <summary>
140134
/// Gets the collection of the registered data provider instances matching the requested type.
141135
/// </summary>
142136
/// <typeparam name="T">The interface type of the data provider.
143-
/// <returns>Read-only collection of the data provider instances, as tye requested type.</returns>
144-
IReadOnlyList<T> GetDataProviders<T>() where T : IMixedRealityDataProvider;
137+
/// <param name="name">The name of the data provider.</param>
138+
/// <returns>Read-only collection of the data provider instances, as the requested type.</returns>
139+
IReadOnlyList<T> GetDataProviders<T>(string name = null) where T : IMixedRealityDataProvider;
145140

146141
#endregion IMixedRealityDataProvider registration
147142
}

Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -191,15 +191,15 @@ public bool RegisterService<T>(
191191
/// <inheritdoc />
192192
public bool UnregisterService<T>(string name = null) where T : IMixedRealityService
193193
{
194-
IMixedRealityService serviceInstance = GetServiceByName<T>(name);
194+
T serviceInstance = GetServiceByName<T>(name);
195195

196196
if (serviceInstance == null) { return false; }
197197

198198
return UnregisterService<T>(serviceInstance);
199199
}
200200

201201
/// <inheritdoc />
202-
public bool UnregisterService<T>(IMixedRealityService serviceInstance) where T : IMixedRealityService
202+
public bool UnregisterService<T>(T serviceInstance) where T : IMixedRealityService
203203
{
204204
Type interfaceType = typeof(T);
205205

@@ -255,15 +255,9 @@ public IReadOnlyList<T> GetServices<T>(string name = null) where T : IMixedReali
255255
}
256256

257257
/// <inheritdoc />
258-
public IReadOnlyList<IMixedRealityService> GetServices()
259-
{
260-
return GetServices<IMixedRealityService>();
261-
}
262-
263-
/// <inheritdoc />
264-
public bool RegisterDataProvider<T>(IMixedRealityDataProvider dataProviderInstance) where T : IMixedRealityDataProvider
258+
public bool RegisterDataProvider<T>(T dataProviderInstance) where T : IMixedRealityDataProvider
265259
{
266-
throw new NotImplementedException();
260+
return RegisterService<T>(dataProviderInstance);
267261
}
268262

269263
/// <inheritdoc />
@@ -272,37 +266,37 @@ public bool RegisterDataProvider<T>(
272266
SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1),
273267
params object[] args) where T : IMixedRealityDataProvider
274268
{
275-
throw new NotImplementedException();
269+
return RegisterService<T>(concreteType, supportedPlatforms, args);
276270
}
277271

278272
/// <inheritdoc />
279273
public bool UnregisterDataProvider<T>(string name = null) where T : IMixedRealityDataProvider
280274
{
281-
throw new NotImplementedException();
275+
return UnregisterService<T>(name);
282276
}
283277

284278
/// <inheritdoc />
285-
public bool UnregisterDataProvider<T>(IMixedRealityDataProvider dataProviderInstance) where T : IMixedRealityDataProvider
279+
public bool UnregisterDataProvider<T>(T dataProviderInstance) where T : IMixedRealityDataProvider
286280
{
287-
throw new NotImplementedException();
281+
return UnregisterService<T>(dataProviderInstance);
288282
}
289283

290284
/// <inheritdoc />
291285
public bool IsDataProviderRegistered<T>(string name = null) where T : IMixedRealityDataProvider
292286
{
293-
throw new NotImplementedException();
287+
return IsServiceRegistered<T>(name);
294288
}
295289

296290
/// <inheritdoc />
297291
public T GetDataProvider<T>(string name = null) where T : IMixedRealityDataProvider
298292
{
299-
throw new NotImplementedException();
293+
return GetService<T>(name);
300294
}
301295

302296
/// <inheritdoc />
303-
public IReadOnlyList<IMixedRealityDataProvider> GetDataProviders()
297+
public IReadOnlyList<T> GetDataProviders<T>(string name = null) where T : IMixedRealityDataProvider
304298
{
305-
throw new NotImplementedException();
299+
return GetServices<T>(name);
306300
}
307301

308302
/// <inheritdoc />
@@ -779,7 +773,7 @@ private bool RegisterServiceInternal(Type interfaceType, IMixedRealityService se
779773

780774
IMixedRealityService preExistingService = GetServiceByNameInternal(interfaceType, serviceInstance.Name);
781775

782-
if (preExistingService == null)
776+
if (preExistingService != null)
783777
{
784778
Debug.LogError($"There's already a {interfaceType.Name}.{preExistingService.Name} registered!");
785779
return false;

0 commit comments

Comments
 (0)