mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-23 18:21:14 +00:00
Add TileProvision configuration and gRPC service for tile delivery
- Introduced new TileProvision settings in appsettings.json, including MaxTilesPerBatch and ProgressEmitIntervalSeconds. - Configured TileProvisionConfig in Program.cs to bind the new settings. - Added gRPC service for RouteTileDelivery in Program.cs to handle tile delivery requests. - Updated SatelliteProvider.Api.csproj to include Grpc.AspNetCore package and added protobuf file for tile provision. - Enhanced AuthenticationServiceCollectionExtensions to handle JWT token extraction from the Authorization header. - Registered additional services in RouteManagementServiceCollectionExtensions for tile processing. These changes enhance the API's capability to manage tile provisioning and delivery efficiently.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
namespace SatelliteProvider.Services.RouteManagement.TileProvision;
|
||||
|
||||
public sealed record RouteTileDeliveryJob(
|
||||
Guid RouteId,
|
||||
IReadOnlyList<(double Lat, double Lon)> Waypoints,
|
||||
double RegionSizeMeters,
|
||||
int Zoom,
|
||||
IReadOnlyList<IReadOnlyList<(double Lat, double Lon)>> GeofenceVertices,
|
||||
bool IncludeGeofenceTiles,
|
||||
IReadOnlyList<ClientTileSnapshot> ClientTiles);
|
||||
|
||||
public sealed record PreparedTileDelivery(
|
||||
RouteTileCandidate Candidate,
|
||||
byte[] Jpeg,
|
||||
byte[] ContentSha256,
|
||||
double ResolutionMetersPerPx,
|
||||
DateTime CapturedAtUtc,
|
||||
string Source);
|
||||
|
||||
public interface IRouteTileDeliverySink
|
||||
{
|
||||
ValueTask WriteManifestAsync(uint totalCandidates, uint skippedByClient, uint toDeliver, CancellationToken cancellationToken);
|
||||
ValueTask WriteBatchAsync(uint batchSeq, IReadOnlyList<PreparedTileDelivery> tiles, CancellationToken cancellationToken);
|
||||
ValueTask WriteProgressAsync(uint delivered, uint total, uint downloading, CancellationToken cancellationToken);
|
||||
ValueTask WriteCompleteAsync(uint delivered, uint skippedClient, uint skippedServerFilter, CancellationToken cancellationToken);
|
||||
ValueTask WriteErrorAsync(string code, string message, bool retryable, CancellationToken cancellationToken);
|
||||
}
|
||||
Reference in New Issue
Block a user