Resource Checkout/Locking Provider
IResourceCheckoutService
in assembly SanteDB.Core.Api version 3.0.1980.0
Summary
A resource locking service
Operations
Operation
Response/Return
Input/Parameter
Description
Checkout
Boolean
Guid key
Try to get a lock on the resource for editing
Checkin
Boolean
Guid key
Release the lock on the specified key
IsCheckedout
Boolean
Guid key IIdentity& currentOwner
Attempts to perform a soft checkout - this is equivalent to attempting to take a lock but not actually taking it
Implementations
UpstreamResourceCheckoutService - (SanteDB.Client)
A IResourceCheckoutService which uses the upstream
Service Registration
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
<serviceProviders>
...
<add type="SanteDB.Client.Upstream.Repositories.UpstreamResourceCheckoutService, SanteDB.Client, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
...
</serviceProviders>
CachedResourceCheckoutService - (SanteDB.Core.Api)
A checkout service which uses the current adhoc cache to manage checkouts
Service Registration
...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
<serviceProviders>
...
<add type="SanteDB.Core.Services.Impl.CachedResourceCheckoutService, SanteDB.Core.Api, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
...
</serviceProviders>
Example Implementation
/// Example Implementation
using SanteDB.Core.Services;
/// Other usings here
public class MyResourceCheckoutService : SanteDB.Core.Services.IResourceCheckoutService {
public String ServiceName => "My own IResourceCheckoutService service";
/// <summary>
/// Try to get a lock on the resource for editing
/// </summary>
public Boolean Checkout<T>(Guid key){
throw new System.NotImplementedException();
}
/// <summary>
/// Release the lock on the specified key
/// </summary>
public Boolean Checkin<T>(Guid key){
throw new System.NotImplementedException();
}
/// <summary>
/// Attempts to perform a soft checkout - this is equivalent to attempting to take a lock but not actually taking it
/// </summary>
public Boolean IsCheckedout<T>(Guid key,IIdentity& currentOwner){
throw new System.NotImplementedException();
}
}
References
Last updated
Was this helpful?