class DataStore implements DataCacheProvider, RolesProvider {

    boolean processSignedDomains(SignedDomains signedDomains) {
        
        /* if we have received no data from ZMS server then we're not
         * going to update our last modification time and instead we'll
         * just continue using the old one until we get some updates
         * from ZMS Server */
        
        if (signedDomains == null) {
            if (LOGGER.isInfoEnabled()) {
                LOGGER.info("No updates received from ZMS Server");
            }
            return true;
        }
        
        /* now process all of our domains */
        
        List<SignedDomain> domains = signedDomains.getDomains();
        if (domains == null || domains.isEmpty()) {
            if (LOGGER.isInfoEnabled()) {
                LOGGER.info("No updates received from ZMS Server");
            }
            return true;
        }
        
        // we're going to return success as long as one of the
        // domains was successfully processed, otherwise there is
        // no point of retrying all domains over and over again
        
        boolean result = false;
        for (SignedDomain domain : domains) {
            if (processDomain(domain, true)) {
                result = true;
            }
        }
        
        return result;
    }

    public  DataStore(ChangeLogStore clogStore, CloudStore cloudStore);

}