예제 #1
0
 private Environment(Guid id, string name, string description = null, ISpatialLocation location = null)
     : base(id, name, description, location)
 {
     recordProviders = new Dictionary<int, IRecordProvider>();
     recordSubscriptions = new Dictionary<int, IDisposable>();
     changesServices = new List<IEnvironmentChangesService>();
 }
예제 #2
0
 protected StreamableRecord(
     uint id,
     Guid sourceId,
     ITimeInterval temporalLocation,
     ISpatialLocation spatialLocation = null)
     : base(id, sourceId, temporalLocation, spatialLocation)
 {
 }
예제 #3
0
 public Device(Guid id, string name, string description = null, ISpatialLocation location = null)
     : base(id, name, description)
 {
     Location = location;
     Recordables = new ObservableCollectionEx<IRecordable, Guid>();
     Recordables.Added.Subscribe(OnRecordablesAdded);
     Recordables.Removed.Subscribe(OnRecordablesRemoved);
 }
예제 #4
0
 private Device(Environment environment, IEnvironmentService service,
     Guid id, string name, string description, ISpatialLocation location,
     bool isAvailable, bool isConnected)
     : base(id, name, description, location)
 {
     this.environment = environment;
     this.service = service;
 }
예제 #5
0
 public async static Task<StreamableRecord> Create(
     uint id,
     Guid sourceId,
     ITimeInterval temporalLocation,
     StreamInfo streamInfo,
     ISpatialLocation spatialLocation = null)
 {
     var record = new StreamableRecord(id, sourceId, temporalLocation, spatialLocation);
     await record.SetStreamInfo(streamInfo, true);
     return record;
 }
예제 #6
0
 public Record(
     uint id,
     Guid sourceId,
     ITimeInterval temporalLocation,
     ISpatialLocation spatialLocation = null)
 {
     Id = id;
     SourceId = sourceId;
     TemporalLocation = temporalLocation;
     SpatialLocation = spatialLocation;
 }
예제 #7
0
 public DeviceInfo(Guid id, string name,
     bool isAvailable, bool isConnected,
     string description = null,
     IEnumerable<Guid> deviceIds = null,
     IEnumerable<Guid> recordableIds = null,
     ISpatialLocation location = null)
     : base(id, name, description, deviceIds)
 {
     if (recordableIds == null)
         recordableIds = Enumerable.Empty<Guid>();
     IsAvailable = isAvailable;
     IsConnected = isConnected;
     RecordableIds = recordableIds;
     Location = location;
 }
예제 #8
0
 protected override void OnLocationChanged(ISpatialLocation location)
 {
     base.OnLocationChanged(location);
     environment.OnChange(service => service.Environment_LocationChanged(location));
 }
예제 #9
0
 protected override void OnLocationChanged(ISpatialLocation oldValue, ISpatialLocation newValue)
 {
     base.OnLocationChanged(oldValue, newValue);
     environment.OnChange(service => service.Device_LocationChanged(Id, newValue));
 }
예제 #10
0
 private Device(Environment environment,
     Guid id, string name, string description, ISpatialLocation location = null)
     : base(id, name, description, location)
 {
     this.environment = environment;
 }
예제 #11
0
 protected virtual void OnSpatialLocationChanged(ISpatialLocation oldValue, ISpatialLocation newValue)
 {
     SpatialLocationChanged.RaiseEvent(this, () => new ValueChangeEventArgs<ISpatialLocation>(oldValue, newValue));
 }
예제 #12
0
 protected virtual void OnLocationChanged(ISpatialLocation location)
 {
 }
예제 #13
0
 protected virtual void OnLocationChanged(ISpatialLocation oldValue, ISpatialLocation newValue)
 {
     if (oldValue != null)
         oldValue.Changed -= OnLocationChanged;
     if (newValue != null)
         newValue.Changed += OnLocationChanged;
     LocationChanged.RaiseEvent(this, () => new ValueChangeEventArgs<ISpatialLocation>(oldValue, newValue));
 }
예제 #14
0
 void IEnvironmentChangesService.Device_LocationChanged(Guid deviceId, ISpatialLocation value)
 {
     Device(deviceId).Location = value;
 }
예제 #15
0
 void IEnvironmentChangesService.Environment_LocationChanged(ISpatialLocation value)
 {
     Location = value;
 }