//-----------------------------------------------------------------------------
// @(#) 1.3 src/somos/cs/exceptns/xmscssae.idl, somos, som3.0 9/3/96 18:42:16 [12/22/96 22:04:48]
//
// ModuleName:  exceptions
//
// Description: This module contians the idl description for the User
//              Exceptions.  It is based on the definitions from the X/Open
//              spec.  Two of these exceptions, ExNoMoreMemory and ExFileIO, 
//	        are not officially X/Open.  They are remnants of the Tivoli 
//              code that is still being used.
//
//  25H7912  (C)  Copyright International Business Machines Corp. 1994,1996 
// All Rights Reserved
// Licensed Materials - Property of IBM
//
// US Government Users Restricted Rights - Use, duplication or disclosure
// restricted by GSA ADP Schedule Contract with IBM Corp.
//
//-----------------------------------------------------------------------------

#ifndef SysAdminExcept_idl
#define SysAdminExcept_idl
#include <somobj.idl>


#define XPG_FIELDS      \
    string type_name;   \
    string catalog;     \
    long key;           \
    string default_msg; \
    long time_stamp;    \
    MsgContext msg_context;

interface SysAdminException
#ifdef __SOMIDL__
                            : SOMObject
#endif
{

exception Exception {
        void            *dummy;
};

typedef sequence<octet> MsgContext;


exception ExException {
        XPG_FIELDS
};
// Base exception class with X/Open messages 

exception ExFailed {
        XPG_FIELDS
        string operation_name;
};
// an operation failure 

exception ExInvalid {
        XPG_FIELDS
        string resource_name;
};
// failure from an invalid resource 

exception ExNotFound {
        XPG_FIELDS
        string resource_name;
};
// failures due to missing resource 

exception ExExists {
        XPG_FIELDS
        string resource_name;
};
// failures resulting from an already existing resource 

exception ExFileIO {
        XPG_FIELDS
        string resource_name;
};
// can't file I/O problem 

exception ExObjNotFound {
        XPG_FIELDS
        string resource_name;
};
// failures due to missing object 

exception ExNoMoreMemory {
        XPG_FIELDS
        string message;
        long size;
};
// memory used up 

#ifdef __SOMIDL__
implementation {
        callstyle = idl;
        majorversion = 3;
        minorversion = 0;
        dllname = "somcslib.dll";
        passthru C_h_after = "#define XPG_FIELDS_PARAMS string type_name, string catalog, long key,  string default_msg, long time_stamp, MsgContext *msg_context";
};
#endif //# _SOMIDL__ 
}; //# End of SysAdminException module

#endif
