DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T m

⟦19d3ab69f⟧ TextFile

    Length: 25033 (0x61c9)
    Types: TextFile
    Names: »msap.3n«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z« 
        └─⟦d846658bd⟧ 
            └─⟦this⟧ »osimis/msap/msap.3n« 

TextFile

#######################################################################
#								      #
# Copyright (c) 1988 University College London			      #  
# All rights reserved.						      #
#								      #
# Redistribution and use in source and binary forms are permitted     #
# provided that the above copyright notice and this paragraph are     #
# duplicated in all such forms and that any documentation,	      #
# advertising materials, and other materials related to such	      #
# distribution and use, acknowledge that the software was developed   #
# by the Department of Computer Science, University College London.   #
# The name of the University may not be used to			      #
# endorse or promote products derived from this software without      #
# specific prior written permission.				      #
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR      #
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED      #
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. #
#								      #
#######################################################################


Common Management Information Service Primitives - Embryo manual page,
to be read in conjunction with the header files `msap.h' and `mpep.h'.

Programs that use the CMIS interface should be linked with the CMIS,
Directory and ISODE libraries (libmsap.a, libdsap.a and libisode.a).


NAME
        M_InitialiseReq - Open a management connection

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_InitialiseReq (CallingTitle, CallingAddr, CalledTitle, CalledAddr,
                context, protvrsn, fununits, access, info, mc, mi)
        AEI CallingTitle, CalledTitle;
        struct PSAPaddr * CallingAddr, * CalledAddr;
        char * context;
        int protvrsn, fununits;
        External * access, * info;
        struct MSAPconnect * mc;
        struct MSAPindication * mi;

DESCRIPTION
        Attempts to open a management level connection to the entity
        CalledTitle at address CalledAddr. The Calling parameters
        may be left NULLAEI and NULLPA respectively. context is the
        application level context for the connection (i.e. "management").
	protvrsn is an integer whose bits indicate the CMIP versions
	supported, at present it should be 1 for version1 (bit 0 set).
        fununits is an integer whose bits are intended to indicate the
        capabilities of the caller. It is passed unaltered to the called
        entity.

        access is an application defined external parameter, a pointer
	to a struct type_UNIV_EXTERNAL as in <isode/pepy/UNIV-types.h>
	(typedef'd as External). It may be created using the
	routine external_create () (see manual entry) and free'd using
	external_free (). NULLACCESS may be used if there are no
	access control requirements.

        info is user information to be sent with the association request.
	It is of type External * as access. NULLEXTERN (the same as
	NULLACCESS) may be used if no information is to be sent.

        The mc structure is updated if the connection establishment is
        successful (an M-ASSOCIATE.CONFIRMATION event) to contain information
        about the connection, including an integer descriptor to be
        used in all references to this connection.

        The mi structure is updated iff the connection fails and contains
        the reason - in particular mi->mi_abort.ma_data is a human readable
        reason for the failure.

DIAGNOSTICS
        OK is returned if the connection establishment is successful,
        NOTOK otherwise.

SEE ALSO
        Isode User's Manual Section 2.2 Vol. 1, IS 9596 (CMIP/S),
	external_build ().




NAME
        M_Init - Initialise a management responder

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_Init (vecp, vec, ms, mi)
        int vecp;
        char ** vec;
        struct MSAPindication * mi;
        struct MSAPstart * ms;

DESCRIPTION
        This routine must be called by a responder as soon as it
        is invoked, passing its argv and argc as the first two
        arguments. If the call is successful then the return is
        equivalent to an M-ASSOCIATE.INDICATION event.
        The association information is contained in the MSAPstart
        structure, including the association descriptor.

DIAGNOSTICS
        NOTOK is returned upon error, the reason being in the
        MSAPindication structure, as above. OK otherwise.

SEE ALSO
        Isode User's Manual Section 2.2 Vol. 1, IS 9596 (CMIP/S).




NAME
        M_InitialiseResp - Respond to a connection request

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_InitialiseResp (ms, status, resptitle, respaddr,
                context, protvrsn, fununits, access, info, mi)
        struct MSAPstart * ms;
        int status;
        AEI resptitle;
        struct PSAPaddr * respaddr;
        OID context;
        int protvrsn, fununits;
        External * access, * info;
        struct MSAPindication * mi;

DESCRIPTION
        ms is the structure filled by the M_Init routine.
        Set status to ACS_ACCEPT to accept the connection request,
        otherwise use ACS_TRANSIENT or ACS_PERMANENT for a transient
	or permanent rejection respectively.
        resptitle and respaddr may be set to NULLAEI and NULLPA.
        context may be set to NULLOID if the requester's
        application context is acceptable.
        protvrsn, fununits, access, and info are as in M_InitialiseReq.

DIAGNOSTICS
        OK is returned on success, otherwise NOTOK is returned
        and mi->mi_abort is updated.

SEE ALSO
        Isode User's Manual Section 2.2 Vol. 1, IS 9596 (CMIP/S),
	external_build ().




NAME
        M_TerminateReq - orderly connection release request

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_TerminateReq (msd, reason, info, mi)
        int msd, reason;
        PE info;
        struct MSAPindication * mi;

DESCRIPTION
        Requests the release of a management association referred
        to by the descriptor msd. The reason should be one of
        ACF_NORMAL, ACF_URGENT, ACF_UNDEFINED.

        info is user information to be sent with the association release
        request. It is passed transparently to the service user's peer.

DIAGNOSTICS
        OK is returned if the connection has been released, otherwise
        NOTOK is returned and mi->mi_abort is updated.

SEE ALSO
        Isode User's Manual Section 2.2 Vol. 1, IS 9596 (CMIP/S).




NAME
        M_TerminateResp - Respond to a Terminate request

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_TerminateResp (msd, status, reason, info, mi)
        int msd, status, reason;
        PE info;
        struct MSAPindication  * mi;

DESCRIPTION
        msd is the descriptor of an association on which
        a terminate request has been received.

        status should be either ACS_ACCEPT if the association is to be
        released, or ACS_REJECT otherwise.
        reason should be one of ACR_NORMAL, ACR_NOTFINISHED or
        ACR_UNDEFINED.

        info is user information to be sent with the association release
        response. It is passed transparently to the service user's peer.

DIAGNOSTICS
        OK is returned upon success and the association is released,
        otherwise NOTOK is returned and mi->mi_abort is updated.

SEE ALSO
        Isode User's Manual Section 2.2 Vol. 1, IS 9596 (CMIP/S).




NAME
        M_AbortReq - Request abrupt release of connection

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_AbortReq (msd, info, mi)
        int msd;
	External * info;
        struct MSAPindication * mi;

DESCRIPTION
        Request the abrupt release of the association referenced by msd.
        info is user information to be sent with the abort request
	(as in M_InitialiseReq).
        
DIAGNOSTICS
        OK is returned upon success and the association is immediately
        released with any data queued possibly lost,
        otherwise NOTOK is returned and mi->mi_abort is updated.

SEE ALSO
        Isode User's Manual Section 2.2 Vol. 1, IS 9596 (CMIP/S),
	external_build ().




NAME
        Operations and Results - Event Report, Get, Set, Action,
        Create, Delete, Linked Reply

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_EventRep (msd, invoke, obj_class, obj_inst, type, time,
                        info, mi)
        int msd, invoke;
        MID obj_class, type;
        MN  obj_inst;
        char * time;
        PE  info;
        struct MSAPindication * mi;

        int M_EventReC (msd, invoke, obj_class, obj_inst,
                        type, time, info, mi)
        /* arguments as above */

        int M_EventRepRes (msd, invoke, obj_class, obj_inst, time, reply,
                        error, err_info, mi)
        int msd, invoke;
        MID  obj_class;
        MN   obj_inst;
        char * time;
        CMISparam * reply;
        CMISerrors error;
        CMISerrparam * err_info;
        struct MSAPindication * mi;


        int M_Get (msd, invoke, obj_class, obj_inst, scope, filter,
                        access, sync, nattrs, attrs, mi)
        int msd, invoke;
        MID  obj_class;
        MN   obj_inst;
        Scope * scope;
        CMISfilter * filter;
        External * access;
        CMISsync sync;
        int  nattrs;
        MID  attrs;
        struct MSAPindication * mi;

        int M_GetRes (msd, invoke, linked, obj_class, obj_inst, time,
                        nattrs, attrs, error, err_info, mi)
        int  msd, invoke, linked;
        MID  obj_class;
        MN   obj_inst;
        char * time;
        int  nattrs;
        CMISparam * attrs;
        CMISerrors error;
        CMISerrparam * err_info;
        struct MSAPindication * mi;


        int M_Set (msd, invoke, obj_class, obj_inst, scope, filter,
                        access, sync, nattrs, attrs, mi)
        int  msd, invoke;
        MID  obj_class;
        MN   obj_inst;
        Scope * scope;
        CMISfilter * filter;
        External * access;
        CMISsync sync;
        int  nattrs;
        CMISparam * attrs;
        struct MSAPindication * mi;

        int M_SetC (msd, invoke, obj_class, obj_inst, scope, filter,
                        access, sync, nattrs, attrs, mi)
        /* arguments as above */

        int M_SetRes (msd, invoke, linked, obj_class, obj_inst, time,
                        nattrs, attrs, error, err_info, mi)
        int  msd, invoke, linked;
        MID  obj_class;
        MN   obj_inst;
        char * time;
        int  nattrs;
        CMISparam * attrs;
        CMISerrors error;
        CMISerrparam * err_info;
        struct MSAPindication * mi;


        int M_Action (msd, invoke, obj_class, obj_inst, scope, filter,
                        access, sync, type, info, mi)
        int  msd, invoke;
        MID  obj_class;
        MN   obj_inst;
        Scope * scope;
        CMISfilter * filter;
        External * access;
        CMISsync sync;
        MID  type;
        PE   info;
        struct MSAPindication * mi;

        int M_ActionC (msd, invoke, obj_class, obj_inst, scope, filter,
                        access, sync, type, info, mi)

        int  M_ActionRes (msd, invoke, linked, obj_class, obj_inst,
                        time, reply, error, err_info, mi)
        int  msd, invoke, linked;
        MID  obj_class;
        MN   obj_inst;
        char * time;
        CMISparam * reply;
        CMISerrors error;
        CMISerrparam * err_info;
        struct MSAPindication * mi;


        int M_Create (msd, invoke, obj_class, obj_inst, inst_type, ref_inst,
                        access, nattrs, attrs, mi)
        int  msd, invoke;
        MID  obj_class;
        MN   obj_inst, ref_inst;
        int  inst_type;
        External * access;
        int  nattrs;
        CMISparam * attrs;
        struct MSAPindication * mi;

        int M_CreateRes (msd, invoke, obj_class, obj_inst, time,
                        nattrs, attrs, error, err_info, mi)
        int  msd, invoke;
        MID  obj_class;
        MN   obj_inst;
        char * time;
        int  nattrs;
        CMISparam * attrs;
        CMISerrors error;
        CMISerrparam * err_info;
        struct MSAPindication * mi;


        int M_Delete (msd, invoke, obj_class, obj_inst, scope, filter,
                        access, sync, mi)
        int  msd, invoke;
        MID  obj_class;
        MN   obj_inst;
        Scope * scope;
        CMISfilter * filter;
        External * access;
        CMISsync sync;
        struct MSAPindication * mi;

        int M_DeleteRes (msd, invoke, linked, obj_class, obj_inst, time,
                                error, err_info, mi)
        int  msd, invoke, linked;
        MID  obj_class;
        MN   obj_inst;
        char * time;
        CMISerrors error;
        CMISerrparam * err_info;
        struct MSAPindication * mi;


DESCRIPTION
        msd is the appropriate association descriptor.

	invoke is the invoke id for the operation or result.

	linked is the linked identifier for linked replies.
	It should have the same value as that of the request invoke id
	for all the replies but the last one (end of linked replies).
	NOLINKED (or NULL) may be used for the last linked reply
	or a single one.

	mi is  a pointer to a MSAPindication structure which
	is updated only if the call fails.

	The remaining arguments are the parameters for the remote
	operation request or reply.  If a parameter is specified as
	optional, then the appropriate NULL<x> may be used (e.g. NULLPE).
	The call returns as soon as the operation is queued, it does not
	wait for the result (if any).
	M_WaitReq must be used to wait for a reply.

        obj_class is of type MID, a pointer to a MIDent structure
        which contains either an OID or an integer (global or local id).
	NULLMID may be used if this argument is optional. In the case
	where a MIDent structure exists instead of a pointer to it
	(i.e. in the CMISerrparam structure), a null effect may be achieved
	by setting mid_type to MID_GLOBAL and mid_global to NULLOID.

        obj_inst is of type MN, a pointer to a MName structure
        that contains either a distinguished name or a character string
	(a 'non-specific' name). For the usage of routines that
	manipulate distinguished names you may consult the ISODE manual,
	Volume 5 Section 17 (Programming the Directory).
	NULLMN may be used if this argument is optional. In the case
        where a MName structure exists instead of a pointer to it
	(i.e. in the CMISerrparam structure), a null effect may be achieved  
        by setting mn_type to MN_DN and mn_dn to NULLDN.

        scope and sync apply to operations that may be performed on
	multiple objects and may result in linked replies, namely M_Get,
	M_Set(C), M_Action(C) and M_Delete.

        scope->sc_type may take one of the values Sc_BaseObject,
	Sc_FirstLevel, Sc_WholeSubtree, Sc_IndividualLevel or
	Sc_BaseToNthLevel. If any of the last two is selected,
	sc->sc_level should indicate the selected level.
	NULLSCOPE may be used if scoping is not required.

        sync may take one of the values s_bestEffort or s_atomic.
	NULLSYNC (effectively s_bestEffort) may be used if
	there are no synchronisation requirements.

        access is an application defined external parameter, a pointer
	to a struct type_UNIV_EXTERNAL as in <isode/pepy/UNIV-types.h>
	(typedef'd as External). It may be created using the
	routine external_create () (see manual entry) and free'd using
	external_free (). NULLACCESS may be used if there are no
	access control requirements.

        filter is the CMIS Filter to be applied to the scoped managed
	object(s). Consult <isode/mpep.h> and IS 9596 (CMIP/S).
	NULLFILTER may be used if filtering is no required.

	attrs in M_Get points to an array of MIDent structures
	and nattrs is the number of elements in that array
	(number of attribute identifiers).
	NULLMID and 0 should be used respectively if all attributes
	are to be selected.


	attrs in M_GetRes, M_Set(C), M_SetRes, M_Create and M_CreateRes
	points to an array of CMISparam structures and nattrs is the
	number of elements in that array (number of attributes).
	A CMISparam structure contains an identifier (mp_id - a MIDent
	struct), a value (mp_val - a PE) and either a modify operator
	(mp_modify) or an error code (mp_error).
	NULLMPARM and 0 should be used respectively if no attribute
	information is to be passed to the peer entity.

	The information in CMISparam for the above CMIS primitives should be:

	In M_GetRes, if a requested attribute value is to be returned,
	mp_id should be set to the attribute id and mp_val should contain
	the attribute value. If one or more attribute values cannot be
	returned, mp_id should be set to the attribute id and mp_error
	should contain the error code (m_accessDenied or m_noSuchAttribute).
	error should be then set to m_getListError.

	In M_Set(C), mp_id is the attribute id of the attribute to be
	set, mp_val is its value and mp_modify is one of m_replace,
	m_addValue, m_removeValue, m_setToDefault
	(in the latter case the attribute value is not required).

	In M_SetRes, if the set operation on an attribute was successful,
	mp_id should be set to the attribute id and mp_id to the attribute
	value after the set operation. If one or more set operations on
	attributes could not be performed, mp_id should be set to the
	attribute id, mp_val should contain the supplied value and
	mp_error should contain the error code (one of m_accessDenied,
	m_noSuchAttribute, m_invalidAttributeValue, m_invalidOperation,
	m_invalidOperator). error should then be set to m_setListError.

	In M_Create, mp_id and mp_val are the attribute id and value
	of the attributes to be initialised.

	In M_CreateRes, mp_id and mp_val are the attribute id and value
	of the attributes that have been initialised.


	inst_type in M_Create specifies the type of the object instance
	and should be either CA_OBJECT_INST or CA_PARENT_INST for object
	and parent instance respectively. 

        type in M_EventRep/M_Action is the event/action type (a MID)
	and info is the event/action information (a PE).
	NULLPE may be used for no event report/action information.

	reply in M_EventRepRes/M_ActionRes is the event report/action reply.
	reply->mp_id should contain the event report/action type id and
	reply->mp_val should contain the event report/action information.
	NULLMPARM may be used for a null reply.

	error contains the error code if an error has occurred while
	processing an operation request. Any error information should be
	contained in an instance of a CMISerrparam structure, pointed
	by err_info.  m_getListError and m_setListError are treated
	as results rather than errors (partial success).
	In the case of success, error may be set to m_noError or NULLMERROR
	and err_info may be set to NULLMERRPARM.

	A CMISerrparam structure contains the following fields:
	object class (me_class - a MIDent struct), object
	instance (me_inst - a MName struct), time (me_time),
	scope (me_scope - a Scope struct), synchronisation (me_sync),
	an identifier (me_id - a MIDent struct), a value (me_val -
	a PE) and either a modify operator (me_modify) or an
	error code (me_error).

	The error information that should be contained in that structure
	is specified below for each error code.

	m_noSuchObjectClass		object class (me_class)

	m_noSuchObjectInstance
        m_invalidObjectInstance
        m_duplicateManagedObjectInstance
        m_noSuchReferenceObject		object instance (me_inst)

        m_accessDenied			none

	m_syncNotSupported		synchronisation (me_sync)

	m_invalidFilter			filter (me_filter)

	m_noSuchAttribute
        m_missingAttributeValue		attribute id (me_id)

	m_invalidAttributeValue		attribute id (me_id)
					attribute val (me_val)
	
	m_noSuchAction			object class (me_class)
					action type id (me_id)
	
	m_processingFailure		object class (me_class)
					object instance (me_inst)	optional
					specific error info (me_val)

        m_noSuchEventType		object class (me_class)
					event type id (me_id)

	m_noSuchArgument		object class (me_class)		optional
					action/event type id (me_id)

	m_invalidArgumentValue		action/event type id (me_id)
					action/event info (me_val)	optional

	m_invalidScope			scope (me_scope)

	m_classInstanceConflict		object class (me_class)
                                        object instance (me_inst)

	m_complexityLimitation		scope (me_scope)		optional
					filter (me_filter)		optional
					synchronisation (me_sync)	optional

	In the case of a delete linked reply error other than
	m_processingFailure (can only be m_accessDenied), the error
	information should be the object class (me_class), object
	instance (me_inst) and current time (me_time), all optional.

	In the case of an action linked reply error other than
        m_processingFailure (one of m_accessDenied, m_noSuchAction,
	m_noSuchArgument, m_invalidArgumentValue), the error
	information should be the one defined above for the
	appropriate error code plus the object class (me_class),
	object instance (me_inst) and current time (me_time),
	the last three optional.

DIAGNOSTICS
        NOTOK is returned on failure, mi->mi_preject contains
        the reason (mr_data is a readable string). The most likely
        error is "Bad Arguments" caused by a failure in the
        pepy generated encoder.

SEE ALSO
        Isode User's Manual Section 3 Vol. 1 (Remote Operations),
        Isode User's Manual Section 17 Vol. 5 (Programming the Directory),
	IS 9596 (CMIP/S), X.410 (ROS),
	external_build ().




NAME
        M_WaitReq - Wait for data on a connection
 
SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        int M_WaitReq (msd, secs, mi)
        int msd, secs;
        struct MSAPindication * mi;

DESCRIPTION
        Allows the service user to wait for up to secs seconds
        for an event to occur on the association referred to by msd.
        If secs is NOTOK the call blocks indefinitely, whereas
        if secs is OK the call returns immediately (e.g. a poll).
        The MSAPindication structure is ALWAYS updated:
        if an operation request or reply is received, the mi->mi_type
	field indicates its type and the remainder of the structure
	contains the invoke id and the decoded arguments, as passed
	to the operation request or reply routine.

        If the mi_type field contains MI_TERM then a terminate
        request has been received. The peer supplied reason is
        contained in the MSAPindication structure.

DIAGNOSTICS
        OK is returned on success, otherwise NOTOK is returned
        and the reason for the failure is contained in mi->mi_preject.

SEE ALSO
        Isode User's Manual Section 3.3.4.




NAME
        xfree - Free management structures

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        mcfree (mc)
        struct MSAPconnect * mc;

        msfree (ms)
        struct MSAPstart * ms;

        mafree (ma)
        struct MSAPabort * ma;

        mifree (ms)
        struct MSAPindication * mi;

DESCRIPTION
        These routines free any data that may have been
        allocated to the pointed structure by the management
        routines. They do not free the structures themselves.

DIAGNOSTICS
        None.

SEE ALSO
        Isode User's Manual Section 3.




NAME
        mfilter_free - Free CMIS filter

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

        mfilter_free (filter)
        CMISfilter * filter;

DESCRIPTION
        It frees the structures that constitute a CMIS filter
        and the data contained there in.

DIAGNOSTICS
        None.

SEE ALSO
        IS 9596 (CMIP/S).




NAME
        external_build - Build an External (type_UNIV_EXTERNAL) structure

SYNOPSIS
        #include <isode/rosap.h>
        #include <isode/msap.h>

	External * external_create (type, ctx, pe, oct_aligned)
	int type;
	char * ctx;
	PE  pe;
	struct qbuf * oct_aligned;

DESCRIPTION
	It builds an External structure containing its arguments
	and returns a pointer to it. An External structure is the same
	as the struct type_UNIV_EXTERNAL in <isode/pepy/UNIV-types.h>
	and reprsents the ASN.1 type EXTERNAL.

 	type should be one of EXTERN_ASN1_TYPE, EXTERN_ARBITRARY and
	EXTERN_OCTET_ALIGNED. In the case of the first two, the actual
	external parameter is a pe while in the case of EXTERN_OCTET_ALIGNED 
	the parameter is a struct qbuf * (oct_aligned).
	ctx is the ASN.1 module of the parameter in string form
	e.g. "x.y.v.z".

	The storage allocated for the structure may be free'd using
	external_free ().
	
DIAGNOSTICS
        An External * is returned upon success, (External *) NULL otherwise.

SEE ALSO
        IS 9596 (CMIP/S).