public MetaDataShareModule(Func <DateTime, ChangeSet> getDomesticChangesSince, Func <IDictionary <string, DateTime>, IList <ChangeSet> > getAlienChangesSince)
        {
            this.getDomesticChangesSince = getDomesticChangesSince;
            this.getAlienChangesSince    = getAlienChangesSince;

            requestModule = new MetaDataRequestModule();
            requestModule.OnMetaDataRequestReceived += OnMetaDataRequestReceived;
            answerModule = new MetaDataAnswerModule();
            answerModule.OnMetaDataAnswerReceived += OnMetaDataAnswerReceived;
        }
        private void OnMetaDataRequestReceived(MetaDataRequestModule source, MetaDataRequestReceivedArgs args)
        {
            var answer = CreateAnswerForRequest(args.MetaDataReq);

            answerModule.SendMetaDataAnswer(args.MetaDataReq.ServiceId, answer);
        }