Files
webthink/observerHandling.js
2017-02-07 20:13:14 +00:00

37 lines
966 B
JavaScript

function Publisher() {
var m_subscribers=new Array();
this.addSubscriber=addSubscriber;
this.removeSubscriber=removeSubscriber;
this.notifySubscribers=notifySubscribers;
function addSubscriber(subscriber,eventType){
for(var i=0;i<m_subscribers.length;i++){
if((m_subscribers[i][0]==subscriber)
&&(m_subscribers[i][1]==eventType)){
return(false);
}
}
var entryDetails=new Array();
entryDetails[0]=subscriber;
entryDetails[1]=eventType;
m_subscribers[m_subscribers.length]=entryDetails;
return(true);
}
function removeSubscriber(subscriber,eventType){
for(var i=0;i<m_subscribers.length;i++){
if((m_subscribers[i][0]==subscriber)
&&(m_subscribers[i][1]==eventType)){
m_subscribers.splice(i,1);
}
}
}
function notifySubscribers(publisher,eventType,addInfo){
for(var i=0;i<m_subscribers.length;i++){
if(m_subscribers[i][1]==eventType){
m_subscribers[i][0](publisher,eventType,addInfo);
}
}
}
}