Add generic ViewStream, BlueRow types/interfaces
This commit is contained in:
1 parent
b121849189
commit
eecc70f151
38 files changed
+130
-108
No files matched your search
@@ -18,10 +18,10 @@ namespace BCG {
|
||||
: this(new TableStream(tableName)) { }
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
myVS.onChange += new ChangeDelegate(myHandleChanges);
|
||||
myVS.onChange += myHandleChanges;
|
||||
}
|
||||
protected override void myOnLastSubscriber() {
|
||||
myVS.onChange -= new ChangeDelegate(myHandleChanges);
|
||||
myVS.onChange -= myHandleChanges;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -78,11 +78,12 @@ namespace bts.BlueOrb {
|
||||
#endregion
|
||||
|
||||
#region overridden methods
|
||||
protected override void myOnFirstSubscriber() { myParentStream.onChange += new ChangeDelegate(myHandleCallbacks); }
|
||||
protected override void myOnFirstSubscriber() =>
|
||||
myParentStream.onChange += myHandleCallbacks;
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
myLastFiredRows = null;
|
||||
myParentStream.onChange -= new ChangeDelegate(myHandleCallbacks);
|
||||
myParentStream.onChange -= myHandleCallbacks;
|
||||
}
|
||||
|
||||
protected override void myFireEvent(object o) {
|
||||
|
||||
@@ -16,10 +16,10 @@ namespace bts.BlueOrb {
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
_stream.onChange += new ChangeDelegate(_onstream_change);
|
||||
_stream.onChange += _onstream_change;
|
||||
}
|
||||
protected override void myOnLastSubscriber() {
|
||||
_stream.onChange -= new ChangeDelegate(_onstream_change);
|
||||
_stream.onChange -= _onstream_change;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,12 +25,12 @@ namespace BCG {
|
||||
byte[] rem_req_bytes = rem_req.serialize();
|
||||
_publisher_core.publish("System", "RemoteRequest", rem_req_bytes);
|
||||
_source_str = new TableStream(_name);
|
||||
_source_str.onChange += new ChangeDelegate(_handle_data);
|
||||
_source_str.onChange += _handle_data;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
//maybe there should be a way to turn remote requests off ?
|
||||
_source_str.onChange -= new ChangeDelegate(_handle_data);
|
||||
_source_str.onChange -= _handle_data;
|
||||
}
|
||||
|
||||
static string get_expression(params string[] lines) {
|
||||
|
||||
@@ -18,13 +18,11 @@ namespace bts.BlueOrb {
|
||||
public CountStream(string tableName)
|
||||
: this(new TableStream(tableName)) { }
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
myVS.onChange += new ChangeDelegate(myHandleChanges);
|
||||
}
|
||||
protected override void myOnLastSubscriber() {
|
||||
myVS.onChange -= new ChangeDelegate(myHandleChanges);
|
||||
}
|
||||
protected override void myOnFirstSubscriber () =>
|
||||
myVS.onChange += myHandleChanges;
|
||||
|
||||
protected override void myOnLastSubscriber () =>
|
||||
myVS.onChange -= myHandleChanges;
|
||||
|
||||
private void myHandleChanges(object newValue) {
|
||||
myFireEvent(
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myToCrush.onChange += new ChangeDelegate(myToCrush_onChange);
|
||||
myToCrush.onChange += myToCrush_onChange;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
|
||||
@@ -15,11 +15,11 @@ namespace BCG
|
||||
|
||||
//set up an anonymous delegate for each of the streams
|
||||
//we do this so that we can unsubscribe
|
||||
myDelegates = new ChangeDelegate[myToCrush.Length];
|
||||
myDelegates = new DataStreamChangeDelegate[myToCrush.Length];
|
||||
for (int i = 0; i < myToCrush.Length; ++i)
|
||||
{
|
||||
int tempI = i;
|
||||
myDelegates[tempI] = new ChangeDelegate((o) => { myHandleChange(tempI, ((DataPacket)o).newRows); });
|
||||
myDelegates[tempI] = o => myHandleChange(tempI, ((DataPacket)o).newRows);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace BCG
|
||||
private ViewStream[] myToCrush;
|
||||
private ITableCrusher myCrusher;
|
||||
|
||||
private ChangeDelegate[] myDelegates;
|
||||
private DataStreamChangeDelegate[] myDelegates;
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myDataSource.onChange += new ChangeDelegate(myDataSource_onChange);
|
||||
myDataSource.onChange += myDataSource_onChange;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
|
||||
@@ -18,7 +18,8 @@ namespace bts {
|
||||
_filename = filename;
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber() { _stream.onChange += new ChangeDelegate(_handle_changes); }
|
||||
protected override void myOnFirstSubscriber() =>
|
||||
_stream.onChange += _handle_changes;
|
||||
|
||||
void _handle_changes(object dp_obj) {
|
||||
DataPacket dp = dp_obj as DataPacket;
|
||||
@@ -26,7 +27,8 @@ namespace bts {
|
||||
myFireEvent(dp_obj);
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber() { _stream.onChange -= new ChangeDelegate(_handle_changes); }
|
||||
protected override void myOnLastSubscriber() =>
|
||||
_stream.onChange -= _handle_changes;
|
||||
|
||||
protected void _save(DataPacket dp) {
|
||||
StreamIOMessage.CreateMessage cr_msg = new StreamIOMessage.CreateMessage(dp.newRows);
|
||||
|
||||
@@ -26,12 +26,12 @@ namespace BCG.StreamWorld.Addition {
|
||||
}
|
||||
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
myBaseStream.onChange += new ChangeDelegate(myHandleChanges);
|
||||
}
|
||||
protected override void myOnFirstSubscriber() =>
|
||||
myBaseStream.onChange += myHandleChanges;
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
myBaseStream.onChange -= new ChangeDelegate(myHandleChanges);
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myBaseStream.onChange -= myHandleChanges;
|
||||
myBaseTable.clear();
|
||||
myStateTable.clear();
|
||||
}
|
||||
@@ -184,13 +184,13 @@ namespace BCG
|
||||
#endregion
|
||||
|
||||
#region overridden methods
|
||||
protected override void myOnFirstSubscriber()
|
||||
{ myParentStream.onChange += new ChangeDelegate(myHandleCallbacks); }
|
||||
protected override void myOnFirstSubscriber() =>
|
||||
myParentStream.onChange += myHandleCallbacks;
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myLastFiredRows = null;
|
||||
myParentStream.onChange -= new ChangeDelegate(myHandleCallbacks);
|
||||
myParentStream.onChange -= myHandleCallbacks;
|
||||
}
|
||||
|
||||
protected override void myFireEvent(object o)
|
||||
|
||||
@@ -36,11 +36,11 @@ namespace BCG
|
||||
get{return myIsFrozen;}
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber ()
|
||||
{myStreamToFreeze.onChange += new DataStream.ChangeDelegate (myCallBack);}
|
||||
protected override void myOnFirstSubscriber () =>
|
||||
myStreamToFreeze.onChange += myCallBack;
|
||||
|
||||
protected override void myOnLastSubscriber ()
|
||||
{myStreamToFreeze.onChange -= new DataStream.ChangeDelegate (myCallBack);}
|
||||
protected override void myOnLastSubscriber () =>
|
||||
myStreamToFreeze.onChange -= myCallBack;
|
||||
|
||||
internal void myCallBack(object o)
|
||||
{
|
||||
|
||||
@@ -96,15 +96,15 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
this.myLeftSource.onChange += new ChangeDelegate(myLeft_onChange);
|
||||
this.myRightSource.onChange += new ChangeDelegate(myRight_onChange);
|
||||
myLeftSource.onChange += myLeft_onChange;
|
||||
myRightSource.onChange += myRight_onChange;
|
||||
this.myVsd.addWorker(this);
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
this.myLeftSource.onChange -= new ChangeDelegate(myLeft_onChange);
|
||||
this.myRightSource.onChange -= new ChangeDelegate(myRight_onChange);
|
||||
myLeftSource.onChange -= myLeft_onChange;
|
||||
myRightSource.onChange -= myRight_onChange;
|
||||
this.myVsd.removeWorker(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace BCG {
|
||||
//gets resubscribed, we start the process of building data again, and treat the callback as the first
|
||||
//callback.
|
||||
myInit();
|
||||
myStream.onChange -= new DataStream.ChangeDelegate(myChangeHandler);
|
||||
myStream.onChange -= myChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myInit() {
|
||||
|
||||
@@ -82,12 +82,12 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myStream.onChange += new DataStream.ChangeDelegate (myChangeHandler);
|
||||
myStream.onChange += myChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber ()
|
||||
{
|
||||
myStream.onChange -= new DataStream.ChangeDelegate (myChangeHandler);
|
||||
myStream.onChange -= myChangeHandler;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,15 +31,15 @@ namespace BCG
|
||||
{
|
||||
myLeftOperand.master = this;
|
||||
myRightOperand.master = this;
|
||||
myLeftStream.onChange += new DataStream.ChangeDelegate (myLeftOperand.changeHandler);
|
||||
myRightStream.onChange += new DataStream.ChangeDelegate (myRightOperand.changeHandler);
|
||||
myLeftStream.onChange += myLeftOperand.changeHandler;
|
||||
myRightStream.onChange += myRightOperand.changeHandler;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber ()
|
||||
{
|
||||
myInit ();
|
||||
myLeftStream.onChange -= new DataStream.ChangeDelegate (myLeftOperand.changeHandler);
|
||||
myRightStream.onChange -= new DataStream.ChangeDelegate (myRightOperand.changeHandler);
|
||||
myLeftStream.onChange -= myLeftOperand.changeHandler;
|
||||
myRightStream.onChange -= myRightOperand.changeHandler;
|
||||
}
|
||||
|
||||
public JoinOperand getOtherOperand (JoinOperand jo)
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace BCG
|
||||
IDictionary map = resolver.getMap ();
|
||||
map["id"] = "id";
|
||||
myPs = new ProjectStream (myIjs, map);
|
||||
myPs.onChange += new DataStream.ChangeDelegate (myProjectChangeHandler);
|
||||
myPs.onChange += myProjectChangeHandler;
|
||||
return;
|
||||
}
|
||||
else
|
||||
@@ -129,26 +129,26 @@ namespace BCG
|
||||
private void myProjectChangeHandler (object o)
|
||||
{
|
||||
if (myIjs.myOnChangeDelegate.GetInvocationList().Length > 1)
|
||||
myIjs.onChange -= new DataStream.ChangeDelegate (myInternalJoinChangeHandler);
|
||||
myIjs.onChange -= myInternalJoinChangeHandler;
|
||||
myFireEvent ((o as ICloneable).Clone());
|
||||
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber ()
|
||||
{
|
||||
myIjs.onChange += new DataStream.ChangeDelegate (myInternalJoinChangeHandler);
|
||||
myIjs.onChange += myInternalJoinChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber ()
|
||||
{
|
||||
// how does this relate to the -= in myProjectChangeHandler?
|
||||
myIjs.onChange -= new DataStream.ChangeDelegate (myInternalJoinChangeHandler);
|
||||
myIjs.onChange -= myInternalJoinChangeHandler;
|
||||
|
||||
// if there is a project after the ijs we need to
|
||||
// unsubscribe to it otherwise references will be kept and
|
||||
// a memory leak will occur
|
||||
if (myPs != null)
|
||||
myPs.onChange -= new DataStream.ChangeDelegate (myProjectChangeHandler);
|
||||
myPs.onChange -= myProjectChangeHandler;
|
||||
myPs = null;
|
||||
}
|
||||
|
||||
|
||||
@@ -183,8 +183,8 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myVLeft.onChange += new ChangeDelegate(myVLeft_onChange);
|
||||
myVRight.onChange += new ChangeDelegate(myVRight_onChange);
|
||||
myVLeft.onChange += myVLeft_onChange;
|
||||
myVRight.onChange += myVRight_onChange;
|
||||
}
|
||||
|
||||
void myVRight_onChange(object newValue)
|
||||
|
||||
@@ -327,14 +327,14 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myLeftStream.onChange += new ChangeDelegate(myHandleLeftStreamChanges);
|
||||
myRightStream.onChange += new ChangeDelegate(myHandleRightStreamChanges);
|
||||
myLeftStream.onChange += myHandleLeftStreamChanges;
|
||||
myRightStream.onChange += myHandleRightStreamChanges;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myLeftStream.onChange -= new ChangeDelegate(myHandleLeftStreamChanges);
|
||||
myRightStream.onChange -= new ChangeDelegate(myHandleRightStreamChanges);
|
||||
myLeftStream.onChange -= myHandleLeftStreamChanges;
|
||||
myRightStream.onChange -= myHandleRightStreamChanges;
|
||||
myLeftKeyToLeftRows.Clear();
|
||||
myRightKeyToRightRows.Clear();
|
||||
myLeftIDToResultRows.Clear();
|
||||
|
||||
@@ -23,15 +23,15 @@ namespace BCG
|
||||
myRightOperand.master = this;
|
||||
//the events are not hooked onto the operands delegate, but rather a level of indirection
|
||||
//added in the form on myLeftChangeHandler
|
||||
myLeftStream.onChange += new DataStream.ChangeDelegate (myLeftChangeHandler);
|
||||
myRightStream.onChange += new DataStream.ChangeDelegate (myRightChangeHandler);
|
||||
myLeftStream.onChange += myLeftChangeHandler;
|
||||
myRightStream.onChange += myRightChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber ()
|
||||
{
|
||||
myInit ();
|
||||
myLeftStream.onChange -= new DataStream.ChangeDelegate (myLeftChangeHandler);
|
||||
myRightStream.onChange -= new DataStream.ChangeDelegate (myRightChangeHandler);
|
||||
myLeftStream.onChange -= myLeftChangeHandler;
|
||||
myRightStream.onChange -= myRightChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myInit()
|
||||
|
||||
@@ -108,13 +108,13 @@ namespace BCG {
|
||||
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
myStream.onChange += new DataStream.ChangeDelegate(myChangeHandler);
|
||||
myStream.onChange += myChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
myInit();
|
||||
if (myStream != null)
|
||||
myStream.onChange -= new DataStream.ChangeDelegate(myChangeHandler);
|
||||
myStream.onChange -= myChangeHandler;
|
||||
}
|
||||
|
||||
protected override void myOnTableClear() {
|
||||
|
||||
@@ -85,10 +85,11 @@ namespace BCG {
|
||||
myMapper.onMapperChange += new MapperChangeDelegate(myHandleMapChange);
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber() { myStream.onChange += new ChangeDelegate(myHandleData); }
|
||||
protected override void myOnFirstSubscriber() =>
|
||||
myStream.onChange += myHandleData;
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
myStream.onChange -= new ChangeDelegate(myHandleData);
|
||||
myStream.onChange -= myHandleData;
|
||||
myRows = null;
|
||||
myBaseRows = null;
|
||||
myMap.Clear();
|
||||
|
||||
@@ -16,10 +16,10 @@ namespace BCG {
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
_stream.onChange += new ChangeDelegate(_onstream_change);
|
||||
_stream.onChange += _onstream_change;
|
||||
}
|
||||
protected override void myOnLastSubscriber() {
|
||||
_stream.onChange -= new ChangeDelegate(_onstream_change);
|
||||
_stream.onChange -= _onstream_change;
|
||||
}
|
||||
|
||||
private void _onstream_change(object o) {
|
||||
@@ -45,4 +45,4 @@ namespace BCG {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,12 +54,12 @@ namespace BCG {
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myVs.onChange += new BCG.DataStream.ChangeDelegate (myHandleChange);
|
||||
myVs.onChange += myHandleChange;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myVs.onChange -= new BCG.DataStream.ChangeDelegate (myHandleChange);;
|
||||
myVs.onChange -= myHandleChange;
|
||||
}
|
||||
|
||||
internal void myHandleChange (object newValue)
|
||||
|
||||
@@ -33,9 +33,11 @@ namespace BCG {
|
||||
myFireResultSnapshot = fireResultSnapshot;
|
||||
}
|
||||
|
||||
protected override void myOnFirstSubscriber() { myStream.onChange += new ChangeDelegate(myHandleChanges); }
|
||||
protected override void myOnFirstSubscriber() =>
|
||||
myStream.onChange += myHandleChanges;
|
||||
|
||||
protected override void myOnLastSubscriber() { myStream.onChange -= new ChangeDelegate(myHandleChanges); }
|
||||
protected override void myOnLastSubscriber() =>
|
||||
myStream.onChange -= myHandleChanges;
|
||||
|
||||
private void myHandleChanges(object newValue) {
|
||||
IBlueRowCollection totalState = (newValue as DataPacket).newRows;
|
||||
|
||||
@@ -35,14 +35,14 @@ namespace BCG
|
||||
#region ViewStream
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myStream.onChange +=new ChangeDelegate(myStreamChange);
|
||||
myStream.onChange += myStreamChange;
|
||||
myVsd.addWorker(this);
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myVsd.removeWorker(this);
|
||||
myStream.onChange -= new ChangeDelegate(myStreamChange);
|
||||
myStream.onChange -= myStreamChange;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myParentStream.onChange += new ChangeDelegate(myParentStreamChangeHandler);
|
||||
myParentStream.onChange += myParentStreamChangeHandler;
|
||||
myVSD.addWorker(this);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace BCG
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myParentStream.onChange -= new ChangeDelegate(myParentStreamChangeHandler);
|
||||
myParentStream.onChange -= myParentStreamChangeHandler;
|
||||
myVSD.removeWorker(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,11 +53,11 @@ namespace BCG
|
||||
if (r.is_subscription)
|
||||
{
|
||||
_current_source_subscription = r.subscription_id;
|
||||
_source_stream.onChange += new ChangeDelegate(_source_stream_onChange);
|
||||
_source_stream.onChange += _source_stream_onChange;
|
||||
}
|
||||
else
|
||||
{
|
||||
_source_stream.onChange -= new ChangeDelegate(_source_stream_onChange);
|
||||
_source_stream.onChange -= _source_stream_onChange;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace BCG
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myKeyToTimeToValue = new Dictionary<string, SortedList<DateTime, double>>();
|
||||
myToAverage.onChange += new ChangeDelegate(myToAverage_onChange);
|
||||
myToAverage.onChange += myToAverage_onChange;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ namespace BCG {
|
||||
mySrc = src;
|
||||
}
|
||||
protected override void myOnFirstSubscriber() {
|
||||
mySrc.onChange += new ChangeDelegate(mySrc_onChange);
|
||||
mySrc.onChange += mySrc_onChange;
|
||||
}
|
||||
protected override void myOnLastSubscriber() {
|
||||
mySrc.onChange -= new ChangeDelegate(mySrc_onChange);
|
||||
mySrc.onChange -= mySrc_onChange;
|
||||
}
|
||||
private void mySrc_onChange(object newValue) {
|
||||
DataPacket dp = (DataPacket)newValue;
|
||||
|
||||
@@ -28,14 +28,14 @@ namespace BCG
|
||||
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
myLeftStream.onChange += new ChangeDelegate(myHandleLeftChanges);
|
||||
myRightstream.onChange += new ChangeDelegate(myHandleRightChanges);
|
||||
myLeftStream.onChange += myHandleLeftChanges;
|
||||
myRightstream.onChange += myHandleRightChanges;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber()
|
||||
{
|
||||
myLeftStream.onChange -= new ChangeDelegate(myHandleLeftChanges);
|
||||
myRightstream.onChange -= new ChangeDelegate(myHandleRightChanges);
|
||||
myLeftStream.onChange -= myHandleLeftChanges;
|
||||
myRightstream.onChange -= myHandleRightChanges;
|
||||
}
|
||||
|
||||
private void myHandleLeftChanges (object newValue)
|
||||
|
||||
@@ -203,7 +203,7 @@ namespace BCG {
|
||||
pj = new ProjectStream(pj, "!");
|
||||
myStreamIndex.Add(myMovingIndex, new Pair<ViewStream, ViewStream>(vs, pj));
|
||||
if (mySubscriptionActive)
|
||||
pj.onChange += new ChangeDelegate(myHandleStreamChanges);
|
||||
pj.onChange += myHandleStreamChanges;
|
||||
}
|
||||
|
||||
public void removeStream(ViewStream vs) {
|
||||
@@ -212,7 +212,7 @@ namespace BCG {
|
||||
if (p.Value.first == vs) {
|
||||
index = p.Key;
|
||||
if (mySubscriptionActive) {
|
||||
p.Value.second.onChange -= new ChangeDelegate(myHandleStreamChanges);
|
||||
p.Value.second.onChange -= myHandleStreamChanges;
|
||||
if (myTable != null) {
|
||||
IBlueRowCollection delRows = myTable.removeTable(p.Key);
|
||||
if (delRows != null)
|
||||
@@ -229,13 +229,13 @@ namespace BCG {
|
||||
protected override void myOnFirstSubscriber() {
|
||||
mySubscriptionActive = true;
|
||||
foreach (KeyValuePair<int, Pair<ViewStream, ViewStream>> p in myStreamIndex)
|
||||
p.Value.second.onChange += new ChangeDelegate(myHandleStreamChanges);
|
||||
p.Value.second.onChange += myHandleStreamChanges;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
mySubscriptionActive = false;
|
||||
foreach (KeyValuePair<int, Pair<ViewStream, ViewStream>> p in myStreamIndex)
|
||||
p.Value.second.onChange -= new ChangeDelegate(myHandleStreamChanges);
|
||||
p.Value.second.onChange -= myHandleStreamChanges;
|
||||
if (myTable != null)
|
||||
myTable.clear();
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@ namespace BCG {
|
||||
}
|
||||
protected override void myOnFirstSubscriber()
|
||||
{
|
||||
mySrc.onChange += new ChangeDelegate(mySrc_onChange);
|
||||
mySrc.onChange += mySrc_onChange;
|
||||
}
|
||||
protected override void myOnLastSubscriber ()
|
||||
{
|
||||
mySrc.onChange -= new ChangeDelegate (mySrc_onChange);
|
||||
mySrc.onChange -= mySrc_onChange;
|
||||
}
|
||||
private void mySrc_onChange (object newValue) {
|
||||
DataPacket dp = (DataPacket)newValue;
|
||||
|
||||
@@ -14,11 +14,11 @@ namespace BCG {
|
||||
|
||||
protected override void myOnFirstSubscriber() {
|
||||
_vs_publisher = new ViewPublisher(_name, _broker, _main_stream);
|
||||
_main_stream.onChange += new DataStream.ChangeDelegate(_handle_update);
|
||||
_main_stream.onChange += _handle_update;
|
||||
}
|
||||
|
||||
protected override void myOnLastSubscriber() {
|
||||
_main_stream.onChange -= new DataStream.ChangeDelegate(_handle_update);
|
||||
_main_stream.onChange -= _handle_update;
|
||||
_vs_publisher.Dispose();
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@ namespace BCG {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,11 +18,11 @@ namespace BCG {
|
||||
public ViewPublisher(string name, PubTableBroker broker, ViewStream vs) {
|
||||
_stream = String.IsNullOrEmpty(name) ? vs : new ChangeTableNameStream(vs, name);
|
||||
_broker = broker;
|
||||
_stream.onChange += new DataStream.ChangeDelegate(_handle_update);
|
||||
_stream.onChange += _handle_update;
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
_stream.onChange -= new DataStream.ChangeDelegate(_handle_update);
|
||||
_stream.onChange -= _handle_update;
|
||||
}
|
||||
|
||||
private void _handle_update(object o) {
|
||||
|
||||
@@ -48,16 +48,17 @@ namespace BCG
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void ChangeDelegate(object newValue);
|
||||
public event ChangeDelegate onChange
|
||||
public event Action<Exception> ErrorChanged;
|
||||
|
||||
public event DataStreamChangeDelegate onChange
|
||||
{
|
||||
add
|
||||
{
|
||||
ChangeDelegate currValue = value;
|
||||
DataStreamChangeDelegate currValue = value;
|
||||
if (myTestMode)
|
||||
{
|
||||
ChangeDelegateWrapper w = new ChangeDelegateWrapper (value);
|
||||
currValue = new ChangeDelegate (w.wrapperFunction);
|
||||
currValue = new DataStreamChangeDelegate (w.wrapperFunction);
|
||||
myDelMap.Add (value, currValue);
|
||||
}
|
||||
if (myRealSource != null)
|
||||
@@ -65,7 +66,7 @@ namespace BCG
|
||||
else
|
||||
{
|
||||
myOnChangeDelegate =
|
||||
(ChangeDelegate) Delegate.Combine (myOnChangeDelegate,currValue);
|
||||
(DataStreamChangeDelegate) Delegate.Combine (myOnChangeDelegate,currValue);
|
||||
|
||||
|
||||
if (myOnChangeDelegate.GetInvocationList().Length == 1) // first subscriber
|
||||
@@ -90,11 +91,11 @@ namespace BCG
|
||||
}
|
||||
remove
|
||||
{
|
||||
ChangeDelegate currValue = value;
|
||||
var currValue = value;
|
||||
// BlueTrace.WriteViewStreamUnsubscribe(this.ID);
|
||||
if (myTestMode)
|
||||
{
|
||||
currValue = myDelMap[value] as ChangeDelegate;
|
||||
currValue = myDelMap[value] as DataStreamChangeDelegate;
|
||||
myDelMap.Remove (value);
|
||||
}
|
||||
if (myRealSource != null)
|
||||
@@ -102,7 +103,7 @@ namespace BCG
|
||||
else
|
||||
{
|
||||
myOnChangeDelegate =
|
||||
(ChangeDelegate) Delegate.Remove (myOnChangeDelegate,currValue);
|
||||
(DataStreamChangeDelegate) Delegate.Remove (myOnChangeDelegate,currValue);
|
||||
|
||||
// this is need to avoid a callback in a reentrant add.
|
||||
if (myPendingAdds.Count > 0)
|
||||
@@ -158,7 +159,7 @@ namespace BCG
|
||||
|
||||
// this was made internal for testing purposes only.
|
||||
// don't mess with it.
|
||||
internal ChangeDelegate myOnChangeDelegate;
|
||||
internal DataStreamChangeDelegate myOnChangeDelegate;
|
||||
protected object myLastValue;
|
||||
protected DataStream myRealSource;
|
||||
private Stack myPendingAdds;
|
||||
@@ -167,9 +168,9 @@ namespace BCG
|
||||
internal class ChangeDelegateWrapper
|
||||
{
|
||||
readonly Stopwatch timer = new();
|
||||
private DataStream.ChangeDelegate myDel;
|
||||
private DataStreamChangeDelegate myDel;
|
||||
|
||||
internal ChangeDelegateWrapper (DataStream.ChangeDelegate del) {myDel = del;}
|
||||
internal ChangeDelegateWrapper (DataStreamChangeDelegate del) {myDel = del;}
|
||||
|
||||
internal void wrapperFunction (object o)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
namespace BCG;
|
||||
|
||||
public delegate void DataStreamChangeDelegate(object newValue);
|
||||
public delegate void DataStreamChangeDelegate<T>(IDataPacket<T> dp) where T : IBlueRow;
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace BCG;
|
||||
|
||||
public interface IViewStream {
|
||||
event DataStreamChangeDelegate onChange;
|
||||
|
||||
IBlueRowCollection rows { get; }
|
||||
}
|
||||
|
||||
public interface IViewStream<T> : IViewStream where T : IBlueRow {
|
||||
new event DataStreamChangeDelegate<T> onChange;
|
||||
|
||||
new IBlueRowCollection<T> rows { get; }
|
||||
}
|
||||
@@ -11,7 +11,7 @@ namespace BCG
|
||||
/// <summary>
|
||||
/// Marker abstract class
|
||||
/// </summary>
|
||||
public abstract class ViewStream : DataStream
|
||||
public abstract class ViewStream : DataStream, IViewStream
|
||||
{
|
||||
private IBlueRowCollection myLastValueForTestMode;
|
||||
protected bool myUseUncopiedNewRowsInFireEvent =
|
||||
@@ -39,7 +39,7 @@ namespace BCG
|
||||
{
|
||||
// used to force a computation of a stream which
|
||||
// happens to have no subscribers
|
||||
onChange += new DataStream.ChangeDelegate(myDummy);
|
||||
onChange += new DataStreamChangeDelegate(myDummy);
|
||||
try
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace BCG
|
||||
}
|
||||
finally
|
||||
{
|
||||
onChange -= new DataStream.ChangeDelegate(myDummy);
|
||||
onChange -= new DataStreamChangeDelegate(myDummy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user