-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Alexiev, Dobrin
Sent: Thursday, July 23, 2009 2:28 PM
To: CDT General developers list.
Subject: [cdt-dev] DSF question
Hello,
I am starting to use DSF and here is a common usage pattern
I'm trying to impalement.
Multiple clients request a single piece of data that is
asynchronously retrieved only once.
When the data is finally retrieved it is made available to
all clients.
I was wandering if there is a helper class I should use
instead of writing my own. Is there better way to achieve this?
Here is the sketch of what I want to achieve - far from
elegant or synchronized.
I've used the very same pattern in the MIVariableManager class.
I believe your idea is the way to do things.
You can look at the element MIVariableManager.operationsPending,
and you will see it is very much like yours.
Marc
Thanks in advance.
Dobrin
Class ServiceX
Data data = ""
Boolean dataRequested = false;
ArrayList< DataRequestMonitor<Data >> initRMs =
ArrayList< DataRequestMonitor<Data >>();
Public Void SerivceX.getData( RequestMonitor rm){
if( data != null) {
rm.setData(data);
rm.done();
}
else {
initRMs.add(rm);
if( !dataRequested) {
dataRequested = true;
requestData();
}
}
}
Void requstData( Context x) {
Request the calls to the backend asyncronously.
}
When the data is finally available on the backend
OnDone callback:
data = ""
for(DataRequestMonitor rm : initRMs) {
rm.setData(data);
rm.done();
}
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev