class DataStore implements DataCacheProvider, RolesProvider {

    public void processDomainChecks() {

        /* retrieve the list of domains from ZMS */

        SignedDomains signedDomains = changeLogStore.getServerDomainModifiedList();
        if (signedDomains == null) {
            return;
        }

        /* go through each domain in the list. if it doesn't exist
         * in the local list we need to update it. if it exists
         * but with an older last modified time, then we need
         * to update it. */

        for (SignedDomain zmsDomain : signedDomains.getDomains()) {

            final DomainData domainData = zmsDomain.getDomain();
            DomainData localDomain = getDomainData(domainData.getName());
            if (localDomain == null || localDomain.getModified().millis() < domainData.getModified().millis()) {

                SignedDomain signedDomain = changeLogStore.getServerSignedDomain(domainData.getName());

                if (signedDomain == null) {
                    continue;
                }

                processDomain(signedDomain, true);
            }
        }
    }

    public  DataStore(ChangeLogStore clogStore, CloudStore cloudStore);

}