Skip to main content

Projects in Global DCC

Projects in the Global DCC repository

FolderProjectDescription
apiGlobalDcc.ApiCore API functionality (distributing DCC requests among backends for different road nets).
GlobalDcc.Api.ClientThis client is used by other solutions to call the Global DCC API.
GlobalDcc.Api.ServerThe actual API host (containerized .Net web app).
backendGlobalDcc.BackendCore backend functionality: Bundles the native backends from GlobalDcc.Interop with access to cache, metrics and the GlobalRouting.Communication framework.
GlobalDcc.Backend.ServerThe actual backend host (containerized .Net web app).
benchmarksDccCache.BenchmarkProject for measuring DccCache performance, I guess.
PerformanceTestPerformance tests, I guess.
commonDccCacheCache for DCC request, shared among the services. Consists of the 'actual cache', paired with a 'binary storage'. A more detailed technical description is available here on confluence.
DccCache.CacheThe actual cache.
DccCache.StorageThe binary storage: a lookup table for medium-sized binary data (velocity profiles, circumstances, etc.), which may be part of the cache lookup key.
DccCache.UtilityCommon code used by DccCache and its child projects.
DccModelThe data model used when communicating with other solutions. E.g. through GlobalDcc.Api.Client.
DccModel.InternalThe internal data model used by Global DCC. When Global DCC receives objects from DccModel it converts it to objects from this project. It also contains functionality for (de)serializing these objects.
DccModel.RequestReplyContains DCC specific implementation of abstractions from GlobalDcc.Communication.RequestReply (request, replies and related classes like factories).
GlobalDcc.Communication.RequestReplyRequest handling.
GlobalDcc.ConfigurationConfiguration classes that are shared among services.
GlobalDcc.DaprProvides Dapr specific code for the services. Includes Dapr-based implementations of the abstractions from GlobalDcc.Communication. Should not contain DCC specific logic. Might be split from this repo together with GlobalDcc.Communication.
GlobalDcc.RoadNetworkCommon code for road nets and their versioning.
devdocker-composeProject for starting api and backend in Docker. This is not in use.
roadnet-managerGlobalDcc.RoadNetManagerContainerized .Net web app for the first part of the CR Roadnet Update Framework). May change when the mentioned CR progresses to part two. In the current implementation, it provides basic REST endpoints to manage a key value store (shared among the services) and notify consumers of changes.
tests/api.unitApi.Client.UnitTestsUnit tests for GlobalDcc.Api.Client.
Api.UnitTestsUnit tests for GlobalDcc.Api and GlobalDcc.Api.Server.
tests/backend.unitBackend.UnitTestsUnit tests for GlobalDcc.Backend.
tests/common.unitCommon.Cache.UnitTestsUnit tests of the cache.
Common.UnitTestsUnit tests for a couple of projects in the common folder.
tests/integrationGlobalDcc.IntegrationTestsIntegration test project. The project starts containers much like dev/docker-compose starts them.
GlobalDcc.OldIntegrationTestsOld integration tests. Expected to be merged into (or replaced by) GlobalDcc.IntegrationTests with story 352238.
toolsDccCache.DbUpContainerized executable for initialing and upgrading the cache database. Named after the library it relies on: dbup.

Other files grouped by folder in the Global DCC solution

FolderDescription
dev/daprFiles used by Dapr when starting Global DCC locally.
docsDocumentation of Global DCC. Including this page.
Solution ItemsMiscellaneous files.

Global DCC projects in the DCC repository

FolderProjectDescription
GlobalDccGlobalDcc.Native.CommonClasses that are used in multiple other Global DCC projects.
GlobalDcc.InteropInterop layer for communication between C# and C++.
GlobalDcc.NativeC++ project for calling DCC.
GlobalDcc.Native.SerializationClasses used for serializing/deserializing to/from binary data. To do: Add reference to doc of serialization.
GlobalDcc.Native.TestTests the other projects in this folder.