/*
* TeleStax, Open Source Cloud Communications Copyright 2012.
* and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.mobicents.protocols.ss7.m3ua;
/**
* <p>
* The listener interface for receiving status update on M3UA resources. The class that is interested in processing status
* update must implements this interface and the object created with that class is registered with {@link M3UAManagement} using
* <code>addM3UAManagementEventListener</code> method.
* </p>
*
* @author amit bhayani
* @author sergey vetyutnev
*
*/
public interface M3UAManagementEventListener {
/**
* Invoked when M3UA stack is started
*/
void onServiceStarted();
/**
* Invoked when M3UA stack is stopped
*/
void onServiceStopped();
/**
* Invoked when all the M3UA resources are successfully removed by calling {@link M3UAManagement#removeAllResourses()}
*/
void onRemoveAllResources();
/**
* Invoked when new {@link As} is successfully created
*
* @param as newly created As
*/
void onAsCreated(As as);
/**
* Invoked when existing {@link As} is successfully destroyed
*
* @param as destroyed As
*/
void onAsDestroyed(As as);
/**
* Invoked when new {@link AspFactory} is successfully created
*
* @param aspFactory newly created AspFactory
*/
void onAspFactoryCreated(AspFactory aspFactory);
/**
* Invoked when existing {@link AspFactory} is destroyed
*
* @param aspFactory destroyed {@link AspFactory}
*/
void onAspFactoryDestroyed(AspFactory aspFactory);
/**
* Invoked when {@link Asp} is successfully assigned to {@link As}
*
* @param as As to which Asp is assigned
* @param asp Asp which is assigned to As
*/
void onAspAssignedToAs(As as, Asp asp);
/**
* Invoked when {@link Asp} is successfully unassigned from {@link As}
*
* @param as As from which Asp is unassigned
* @param asp Asp which is unassigned from As
*/
void onAspUnassignedFromAs(As as, Asp asp);
/**
* Invoked when {@link AspFactory} is successfully started
*
* @param aspFactory AspFactory that's started
*/
void onAspFactoryStarted(AspFactory aspFactory);
/**
* Invoked when {@link AspFactory} is successfully stopped
*
* @param aspFactory AspFactory that's stopped
*/
void onAspFactoryStopped(AspFactory aspFactory);
/**
* Invoked when {@link Asp} becomes ACTIVE
*
* @param asp Asp that changed state to ACTIVE
* @param oldState the old state of Asp from which it changed to ACTIVE
*/
void onAspActive(Asp asp, State oldState);
/**
* Invoked when {@link Asp} becomes INACTIVE
*
* @param asp Asp that changed state to INACTIVE
* @param oldState the old state of Asp from which it changed to INACTIVE
*/
void onAspInactive(Asp asp, State oldState);
/**
* Invoked when {@link Asp} becomes DOWN
*
* @param asp Asp that changed state to DOWN
* @param oldState the old state of Asp from which it changed to DOWN
*/
void onAspDown(Asp asp, State oldState);
/**
* Invoked when {@link As} becomes ACTIVE
*
* @param as As that changed state to ACTIVE
* @param oldState the old state of As from which it changed to ACTIVE
*/
void onAsActive(As as, State oldState);
/**
* Invoked when {@link As} becomes PENDING
*
* @param as As that changed state to PENDING
* @param oldState the old state of As from which it changed to PENDING
*/
void onAsPending(As as, State oldState);
/**
* Invoked when {@link As} becomes INACTIVE
*
* @param as As that changed state to INACTIVE
* @param oldState the old state of As from which it changed to INACTIVE
*/
void onAsInactive(As as, State oldState);
/**
* Invoked when {@link As} becomes DOWN
*
* @param as As that changed state to DOWN
* @param oldState the old state of As from which it changed to DOWN
*/
void onAsDown(As as, State oldState);
}