Interface IRequestSubsystem


  • public interface IRequestSubsystem
    This interface defines storage of request objects in the local database.

    Version:
    $Revision$, $Date$
    • Method Detail

      • createRequestQueue

        void createRequestQueue​(java.lang.String name)
                         throws EBaseException
        Creates a new request queue. (Currently unimplemented. Just use getRequestQueue to create an in-memory queue.)

        Parameters:
        name - The name of the queue object. This name can be used in getRequestQueue to retrieve the queue later.
        Throws:
        EBaseException - failed to create request queue
      • getRequestQueue

        IRequestQueue getRequestQueue​(java.lang.String name,
                                      int increment,
                                      IPolicy p,
                                      IService s,
                                      INotify n,
                                      INotify pendingNotifier)
                               throws EBaseException
        Retrieves a request queue. This operation should only be done once on each queue. For example, the RA subsystem should retrieve its queue, and store it somewhere for use by related services, and servlets.

        WARNING: retrieving the same queue twice with result in multi-thread race conditions.

        Parameters:
        name - the name of the request queue. (Ex: "ca" "ra")
        p - A policy enforcement module. This object is called to make adjustments to the request, and decide whether it needs agent approval.
        s - The service object. This object actually performs the request after it is finalized and approved.
        n - A notifier object (optional). The notify() method of this object is invoked when the request is completed (COMPLETE, REJECTED or CANCELED states).
        pendingNotifier - A notifier object (optional). Like the 'n' argument, except the notification happens if the request is made PENDING. May be the same as the 'n' argument if desired.
        Throws:
        EBaseException - failed to retrieve request queue