コード例 #1
0
        public SharedCreator(
            MessageService messageService,
            AzureStorageDetails storageDetails,
            SynchronizationDetails syncDetails)
        {
            this.deviceId  = new Guid();
            this.startTime = DateTime.Now;
            this.sharedObjectsInSceneMessages = new List <CreatedObjectMessage>();
            this.worldAnchorMap    = new WorldAnchorMap();
            this.messageService    = messageService;
            this.syncDetails       = syncDetails;
            this.storageDetails    = storageDetails;
            this.GameObjectCreator = new PrimitiveGameObjectCreator();

            this.RegisterMessageHandlers();
            this.AnnounceNewDeviceToNetwork();
        }
コード例 #2
0
 public static PSDataShareSynchronizationDetail ToPsObject(this SynchronizationDetails synchronizationDetails)
 {
     return(new PSDataShareSynchronizationDetail
     {
         Name = synchronizationDetails.Name,
         DataSetId = synchronizationDetails.DataSetId,
         DataSetType = synchronizationDetails.DataSetType,
         DurationMs = synchronizationDetails.DurationMs,
         StartTime = synchronizationDetails.StartTime,
         EndTime = synchronizationDetails.EndTime,
         Status = synchronizationDetails.Status,
         FilesRead = synchronizationDetails.FilesRead,
         FilesWritten = synchronizationDetails.FilesWritten,
         SizeRead = synchronizationDetails.SizeRead,
         SizeWritten = synchronizationDetails.SizeWritten,
         Message = synchronizationDetails.Message
     });
 }
コード例 #3
0
        public void IncomingSynchronizationStarted(string fileName, ServerInfo sourceServerInfo, Guid sourceFileETag, SynchronizationType type)
        {
            var activeForDestination = activeIncomingSynchronizations.GetOrAdd(sourceServerInfo.FileSystemUrl,
                                                                               new ConcurrentDictionary <string, SynchronizationDetails>());

            var syncDetails = new SynchronizationDetails()
            {
                DestinationUrl = sourceServerInfo.FileSystemUrl,
                FileETag       = sourceFileETag,
                FileName       = fileName,
                Type           = type
            };

            if (activeForDestination.TryAdd(fileName, syncDetails))
            {
                Log.Debug("File '{0}' with ETag {1} was added to an incoming active synchronization queue for a destination {2}",
                          fileName,
                          sourceFileETag, sourceServerInfo.FileSystemUrl);
            }
        }
コード例 #4
0
        public void ExecuteTest2()
        {
            var urls = new string[]
            {
                "http://www.google.com.br/",
                "http://www.microsoft.com/"
            };

            urls = urls.Concat(urls).Concat(urls).Concat(urls).Concat(urls).Concat(urls).Concat(urls).Concat(urls).ToArray();
            var asyncCallbackSynchronizer = new AsyncCallbackSynchronizer <string>();
            Func <AsyncCallback, string, IAsyncResult> begin = delegate(AsyncCallback callback, string url)
            {
                var request = HttpWebRequest.Create(url);
                return(request.BeginGetResponse(callback, request));
            };
            var synchronizer = new Synchronizer <IEnumerable <IAsyncResult> >();
            var callbacker   = new ThreadPoolCallbacker <SynchronizationDetails <string>, IAsyncResult>(SynchronizationDetails <string> .Execute);

            foreach (var url in urls)
            {
                var synchronizationDetails = new SynchronizationDetails <string>
                {
                    Argument = url,
                    Begin    = begin,
                    AsyncCallbackSynchronizer = asyncCallbackSynchronizer
                };
                callbacker.Queue(synchronizationDetails);
            }
            var results = synchronizer.Execute(callbacker.EnableCallback);
            var reals   = new List <string>();

            foreach (var result in results)
            {
                using (var response = ((WebRequest)result.AsyncState).EndGetResponse(result))
                {
                    reals.Add(response.ResponseUri.AbsoluteUri);
                }
            }
        }
コード例 #5
0
        private void CreateSyncingConfiguration(string fileName, Guid etag, string destinationFileSystemUrl, SynchronizationType synchronizationType)
        {
            try
            {
                var name = RavenFileNameHelper.SyncNameForFile(fileName, destinationFileSystemUrl);

                var details = new SynchronizationDetails
                {
                    DestinationUrl = destinationFileSystemUrl,
                    FileName       = fileName,
                    FileETag       = etag,
                    Type           = synchronizationType
                };

                storage.Batch(accessor => accessor.SetConfig(name, JsonExtensions.ToJObject(details)));
            }
            catch (Exception e)
            {
                Log.WarnException(
                    string.Format("Could not create syncing configurations for a file {0} and destination {1}", fileName, destinationFileSystemUrl),
                    e);
            }
        }