blob: 28c817047c773cd459cd7af487c107f4b8602518 [file] [log] [blame]
/**********************************************************************
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// @@@ END COPYRIGHT @@@
**********************************************************************/
#ifndef CEE_H
#define CEE_H
#define CEE_H_VERSION 19991123
/*
* !CEE API
*
* $RCSfile: cee_head.h $$Revision: 1.39 $$Date: 1999/11/24 19:25:24 $
*
* This header file contains definitions for users of the
* TANTAU Common Execution Environment (including generated code).
*
*/
#ifdef __cplusplus
extern "C" {
#endif
#include <glu.h>
#ifndef CEE_H_
#define CEE_H_
/*
* Translation unit: CEE
* Generated by CNPGEN(TANTAU CNPGEN TANTAU_AG_PC1 19991203.133909) on Tue Nov 21 10:05:14 2000
*/
#include <idltype.h>
#if IDL_TYPE_H_VERSION != 19971225
#error Version mismatch IDL_TYPE_H_VERSION != 19971225
#endif
/****************
* Module 'CEE' *
****************/
typedef IDL_enum CEE_synch_def;
#define CEE_INVALID_METHOD ((IDL_enum) 0)
#define CEE_SYNCH_METHOD ((IDL_enum) 1)
#define CEE_ASYNCH_METHOD ((IDL_enum) 2)
#define CEE_SYNCH_MULTITHREADED_METHOD ((IDL_enum) 3)
#define CEE_TRANSPORT_INVALID ((IDL_long) 0)
#define CEE_TRANSPORT_NULL ((IDL_long) 1)
#define CEE_TRANSPORT_FSP ((IDL_long) 2)
#define CEE_TRANSPORT_TCP ((IDL_long) 3)
#define CEE_TRANSPORT_TI ((IDL_long) 4)
#define CEE_TRANSPORT_SRT ((IDL_long) 5)
#define CEE_MAX_SRT_RESOURCE_TYPES ((IDL_long) 2)
#define CEE_SRT_RESOURCE_TYPE_UNKNOWN ((IDL_long) -1)
#define CEE_SRT_RESOURCE_TYPE_IMPLEMENTER ((IDL_long) 0)
#define CEE_SRT_RESOURCE_TYPE_PROVIDER ((IDL_long) 1)
#define CEE_SRT_ResourceTypeImplementer ((IDL_string) "IMPLE" \
"MENTER")
#define CEE_SRT_ResourceTypeProvider ((IDL_string) "PROVIDER")
#define CEE_MAX_SRT_POLICIES ((IDL_long) 3)
#define CEE_SRT_POLICY_UNKNOWN ((IDL_long) -1)
#define CEE_SRT_POLICY_ROUNDROBIN ((IDL_long) 0)
#define CEE_SRT_POLICY_FALLBACK ((IDL_long) 1)
#define CEE_SRT_POLICY_STICKY ((IDL_long) 2)
#define CEE_SRT_PolicyRoundrobin ((IDL_string) "ROUNDROBIN")
#define CEE_SRT_PolicyFallback ((IDL_string) "FALLBACK")
#define CEE_SRT_PolicySticky ((IDL_string) "STICKY")
#define CEE_UNIX_NOTIFY_READ ((IDL_long) 1)
#define CEE_UNIX_NOTIFY_WRITE ((IDL_long) 2)
#define CEE_UNIX_NOTIFY_EXCEPTION ((IDL_long) 3)
struct CEE_handle_tag {
IDL_long contents[4];
};
typedef struct CEE_handle_tag CEE_handle_def;
#define CEE_handle_def_cin_ ((char *) "b1+a1+4+F")
#define CEE_handle_def_csz_ ((IDL_unsigned_long) 9)
#define CEE_INVALID_IO_ID ((IDL_long) 0)
#define CEE_SVC_CTX_UNUSED ((IDL_unsigned_long) 0)
#define CEE_SVC_CTX_KTF ((IDL_unsigned_long) 1)
#define CEE_SVC_CTX_RESERVED_MAX ((IDL_unsigned_long) 2147483647)
/* End module: CEE */
typedef IDL_long CEE_status;
#define CEE_status_cin_ ((char *) "F")
#define CEE_status_csz_ ((IDL_unsigned_long) 1)
#define CEE_SUCCESS ((IDL_long) 0)
#define CEE_UNKNOWN ((IDL_long) 1)
#define CEE_ALLOCFAIL ((IDL_long) 2)
#define CEE_ALREADYEXISTS ((IDL_long) 3)
#define CEE_BADHANDLE ((IDL_long) 4)
#define CEE_PROXYSTALE ((IDL_long) 5)
#define CEE_BADCIN ((IDL_long) 6)
#define CEE_INUSE ((IDL_long) 7)
#define CEE_BADMETHIDX ((IDL_long) 8)
#define CEE_NOTSYNCHRONOUS ((IDL_long) 9)
#define CEE_INTERNALFAIL ((IDL_long) 10)
#define CEE_OCERROR ((IDL_long) 11)
#define CEE_PROXYINITFAIL ((IDL_long) 12)
#define CEE_BADENTRYPOINT ((IDL_long) 13)
#define CEE_BADLIBNAME ((IDL_long) 14)
#define CEE_LIBUNLOAD ((IDL_long) 15)
#define CEE_NOTALLINIT ((IDL_long) 16)
#define CEE_PROXYINUSE ((IDL_long) 17)
#define CEE_BADMETHMIX ((IDL_long) 18)
#define CEE_ALREADYDESTR ((IDL_long) 19)
#define CEE_CLIENTFAIL ((IDL_long) 20)
#define CEE_SERVERFAIL ((IDL_long) 21)
#define CEE_BADREQHEADER ((IDL_long) 22)
#define CEE_BADRSPHEADER ((IDL_long) 23)
#define CEE_BADREQVERSION ((IDL_long) 24)
#define CEE_BADRSPVERSION ((IDL_long) 25)
#define CEE_LONGREQUEST ((IDL_long) 26)
#define CEE_LONGRESPONSE ((IDL_long) 27)
#define CEE_SHORTREQUEST ((IDL_long) 28)
#define CEE_SHORTRESPONSE ((IDL_long) 29)
#define CEE_BADREQSEQSIZE ((IDL_long) 30)
#define CEE_BADRSPSEQSIZE ((IDL_long) 31)
#define CEE_BADREQSTRSIZE ((IDL_long) 32)
#define CEE_BADRSPSTRSIZE ((IDL_long) 33)
#define CEE_NOSUCHOP ((IDL_long) 34)
#define CEE_OPNOTIMPL ((IDL_long) 35)
#define CEE_BADTIME ((IDL_long) 36)
#define CEE_BADPV ((IDL_long) 37)
#define CEE_NOSUCHOBJ ((IDL_long) 38)
#define CEE_BADOBJREF ((IDL_long) 39)
#define CEE_BADTRANSPORT ((IDL_long) 40)
#define CEE_DOESNOTEXIST ((IDL_long) 41)
#define CEE_LONGOID ((IDL_long) 42)
#define CEE_OBJNOTACT ((IDL_long) 43)
#define CEE_BADOBJID ((IDL_long) 44)
#define CEE_TOOMANYIOS ((IDL_long) 45)
#define CEE_NOTINIT ((IDL_long) 46)
#define CEE_ALREADYINIT ((IDL_long) 47)
#define CEE_BADMEMORYADDR ((IDL_long) 48)
#define CEE_TRANSPORTFAILURE ((IDL_long) 49)
#define CEE_BADCAPSULEID ((IDL_long) 50)
#define CEE_SESSIONCLOSED ((IDL_long) 51)
#define CEE_EXECUTEFINISHED ((IDL_long) 52)
#define CEE_PROCESSUNNAMED ((IDL_long) 53)
#define CEE_LOGFAILURE ((IDL_long) 54)
#define CEE_BADEVENT ((IDL_long) 55)
#define CEE_BADFD ((IDL_long) 56)
#define CEE_SKIERROR ((IDL_long) 57)
#define CEE_SKINOTFOUND ((IDL_long) 58)
#define CEE_BIGCAPSULENAME ((IDL_long) 59)
#define CEE_BADCAPSULENAME ((IDL_long) 60)
#define CEE_UNUSEDENTRYPOINT ((IDL_long) 61)
#define CEE_OBJECTINITFAILED ((IDL_long) 62)
#define CEE_TABLEFULL ((IDL_long) 63)
#define CEE_NOTDYNAMICOBJ ((IDL_long) 64)
#define CEE_CANCELED ((IDL_long) 65)
#define CEE_BADSIGNALNUMBER ((IDL_long) 66)
#define CEE_TOOMANYTIST ((IDL_long) 67)
#define CEE_REQTOOBIG ((IDL_long) 68)
#define CEE_RSPTOOBIG ((IDL_long) 69)
#define CEE_UNIMPLCONV ((IDL_long) 70)
#define CEE_BADTFILEOPEN ((IDL_long) 71)
#define CEE_SHORTOUTBUF ((IDL_long) 72)
#define CEE_NOTGWYOID ((IDL_long) 73)
#define CEE_NOTCONFIGOID ((IDL_long) 74)
#define CEE_SHORTOID ((IDL_long) 75)
#define CEE_TRANSACTIONREQUIRED ((IDL_long) 76)
#define CEE_TRANSACTIONROLLEDBACK ((IDL_long) 77)
#define CEE_INVALIDTRANSACTION ((IDL_long) 78)
#define CEE_WRONGTRANSACTION ((IDL_long) 79)
#define CEE_IMPLIMIT ((IDL_long) 80)
#define CEE_LONGOBJREF ((IDL_long) 81)
#define CEE_LONGCAPSULEID ((IDL_long) 82)
#define CEE_TRACE_ERROR ((IDL_long) 83)
#define CEE_INVALIDCONFIGURATION ((IDL_long) 84)
#define CEE_NOSUCHOBJRETRYPOSSIBLE ((IDL_long) 85)
#define CEE_BADFILNUM ((IDL_long) 86)
#define CEE_TOOMANYSVCCTX ((IDL_long) 87)
#define CEE_NOTOBJGROUPID ((IDL_long) 88)
#define CEE_BADTHREAD ((IDL_long) 89)
#define CEE_RETRYPOSSIBLE ((IDL_long) 90)
#define CEE_BADPGRMROLE ((IDL_long) 91)
/*
* End translation unit: CEE
*/
#endif /* CEE_H_ */
/*
* $RCSfile: cee_tail.h $$Revision: 1.81 $$Date: 1999/08/27 12:44:25 $
*/
/*
* !CEE_tag_def
*
* "CEE_tag_def" is the type for tag arguments in the CEE routines that
* register up-calls.
*
* You set the tag argument to an arbitrary value and the CEE passes this
* value to the up-called routine. This provides a mechanism to pass
* context information to the up-called routnies.
*
*/
typedef void *CEE_tag_def;
/*
* !CEE_call_monitor_ptr
*
* The CEE calls functions of type "CEE_call_monitor_ptr" when asynchronous
* operations from clients are no longer valid.
*
* An asynchronous call can become invalid when the client destroys the proxy used
* for the call or when the client that made the call exits.
*
* You register a routine to handle invalid asynchronous operations with
* "CEE_CALL_MONITOR".
*
* <monitor_tag> The arbitrary value you pass to CEE_CALL_MONITOR.
*
*/
typedef void (*CEE_call_monitor_ptr) (
/* In */ CEE_tag_def monitor_tag
);
/*
* !CEE_cfg_update_ptr
*
* "CEE_cfg_update_ptr" is the type used to
* specify upcall function pointers for configuration
* updates (see also "CEE_CFG_UPDATE_REGISTER").
*
* <cfg_tag> is the tag that was supplied to
* "CEE_CFG_UPDATE_REGISTER".
*
* <qualifier> same value as was supplied to
* "CEE_CFG_GET_RECORD".
*
* <entry_name> same value as was supplied to
* "CEE_CFG_GET_RECORD".
*
* <old_value> is the old value of the configuration
* parameter.
*
* <new_value> is the new value of the configuration
* parameter.
*
* <return-value> zero indicates success, the new
* configuration has been applied. Any
* other value indicates failure and
* the reconfiguration request will be
* rejected.
*
*/
typedef IDL_long (*CEE_cfg_update_ptr) (
/* In */ CEE_tag_def cfg_tag,
/* In */ const char *qualifier,
/* In */ const char *entry_name,
/* In */ const void *old_value,
/* In */ const void *new_value
);
/*
* !CEE_object_shutdown_ptr
*
* "CEE_object_shutdown_ptr" is the type used to
* specify upcall function pointers for capsule
* shutdown (see also "CEE_OBJECT_SET_SHUTDOWN").
*
* <obj_tag> is the tag that was supplied to
* "CEE_OBJECT_CREATE" (dynamic
* objects) or that was returned
* by the object initialization
* function (configured objects).
*
*
*/
typedef void (*CEE_object_shutdown_ptr) (
/* In */ CEE_tag_def obj_tag
);
/*
* !CEE_signal_handler_ptr
*
* The CEE calls functions of type "CEE_signal_handler_ptr" when signals
* are generated.
*
* You register a routine to handle a signal with "CEE_SIGNAL_HANDLER_CREATE".
*
* <signal_number> The signal number being monitored. Signal numbers are
* defined in the standard C header file "signal.h".
*
* <signal_tag> The arbitrary value you pass to "CEE_SIGNAL_HANDLER_CREATE".
*
*/
typedef void (*CEE_signal_handler_ptr) (
/* In */ int signal_number,
/* In */ CEE_tag_def signal_tag
);
/*
* !CEE_NSK_io_completion_detail_def
*
* "CEE_NSK_io_completion_detail_def" is the type returned in the bytes_or_detail
* parameter of "CEE_NSK_io_completion_ptr" in certain cases.
*
* "CEE_NSK_io_completion_detail_def" is a union that contains either
* the number of byte transferred or error information.
*
* The caller must cast the long for backwards compatibility reasons.
*
* <sc_send_info> The CEE calls SERVERCLASS_SEND_INFO_ and puts
* the results in this structure if status is
* FESCERROR (233).
*
* <bytes_transferred> The number of bytes transferred if
* SERVERCLASS_SEND_INFO_ succeeds.
*
*/
typedef union CEE_NSK_io_completion_detail_tag {
struct CEE_NSK_sc_send_info_tag { /* if status FESCERROR (233) */
short path_send_error;
short file_system_error;
} sc_send_info;
long bytes_transferred; /* In all other cases */
} CEE_NSK_io_completion_detail_def;
/*
* !CEE_NSK_io_completion_ptr
*
* CEE calls functions of type "CEE_NSK_io_completion_ptr" when asynchronous
* (nowaited) I/O operations are posted.
*
* You register a completion routine for an asynchronous I/O operation with
* "CEE_NSK_ASYNC_IO_PREPARE".
*
* <status> The status of the completed operation as returned by
* FILE_GETINFO_.
*
* <io_tag> The arbitrary value you pass to "CEE_NSK_ASYNCH_IO_PREPARE".
*
* <bytes_or_detail> The number of bytes transferred during the
* I/O operation (AWAITIOX param #3) or an error detail.
* You must cast "bytes_or_detail" to
* "CEE_NSK_io_completion_detail_def" in certain cases.
* See "CEE_NSK_io_completion_detail_def" for details.
*
*/
typedef void (*CEE_NSK_io_completion_ptr) (
/* In */ short status,
/* In */ CEE_tag_def io_tag,
/* In */ long bytes_or_detail
);
/*
* !CEE_NSK_end_tx_completion_ptr
*
* The CEE calls functions of type "CEE_NSK_end_tx_completion_ptr" when
* nowait ENDTRANSACTIONs complete.
*
* You register a completion routine for a nowait ENDTRANSACTION with
* "CEE_NSK_ENDTRANSACTION_COMPLETION".
*
* <status> The status of completed ENDTRANSACTION as returned by
* FILE_GETINFO_.
*
* <tx_tag> The arbitrary value you pass to
* "CEE_NSK_ENDTRANSACTION_COMPLETION".
*
*/
typedef void (*CEE_NSK_end_tx_completion_ptr) (
/* In */ short status,
/* In */ CEE_tag_def tx_tag
);
/*
* !CEE_NSK_open_completion_ptr
*
* The CEE calls functions of type "CEE_NSK_open_completion_ptr" when nowait
* FILE_OPEN_ calls are completed.
*
* You register a completion routine for a nowait FILE_OPEN_ with
* "CEE_NSK_FILE_OPEN_COMPLETION".
*
* <status> The status of completed operation as returned by
* FILE_GETINFO_.
*
* <open_tag> The arbitrary value you pass to "CEE_NSK_FILE_OPEN_COMPLETION".
*
*/
typedef void (*CEE_NSK_open_completion_ptr) (
/* In */ short status,
/* In */ CEE_tag_def open_tag
);
/*
* !CEE_NT_io_completion_ptr
*
* The CEE calls functions of type "CEE_NT_io_completion_ptr" when asynchronous
* (overlapped) I/O operations are posted.
*
* You register a completion routine for an asynchronous I/O operation with
* "CEE_NT_ASYNC_IO_PREPARE".
*
* <io_tag> The arbitrary value you pass to "CEE_ASYNCH_IO_PREPARE".
*
*/
typedef void (*CEE_NT_io_completion_ptr) (
/* In */ CEE_tag_def io_tag
);
/*
* !CEE_UNIX_io_notification_ptr
*
* The CEE calls functions of type "CEE_UNIX_io_notification_ptr" when file
* descriptors become ready for I/O.
*
* You register a notification routine for a file descriptors availability
* with "CEE_UNIX_IO_NOTIFICATION".
*
* <io_tag> The arbitrary value you pass to "CEE_UNIX_IO_NOTIFICATION".
*
*/
typedef void (*CEE_UNIX_io_notification_ptr) (
/* In */ CEE_tag_def io_tag
);
/*
* !CEE_VMS_asynch_upcall_ptr
*
* Functions of the type "CEE_VMS_ASYNCH_UPCALL" enable callers to
* associate the execution of CEE sends and receives with the
* asynchronous completion of some other activity in the caller's
* program.
*
* "CEE_VMS_ASYNCH_UPCALL" functions are registered using
* "CEE_VMS_ASYNCH_UPCALL_REGISTER" and are dispatched by calling
* "CEE_VMS_ASYNCH_UPCALL_DISPATCH".
*
* "CEE_VMS_ASYNCH_UPCALL_DISTACH" is intended to be called at AST
* level.
*
* <io_tag> The arbitrary value passed to
* "CEE_VMS_ASYNCH_UPCALL_REGISTER".
*
*/
typedef void (*CEE_VMS_asynch_upcall_ptr) (
/* In */ CEE_tag_def tag
);
/*
* !CEE_method_ptr
*
* The CEE calls functions of type "CEE_method_ptr" when implementations
* call methods. The registered methods can be either synchronous or asynchronous.
*
* You register a method with "CEE_SET_METHOD".
*
* <method_tag> The arbitrary value you pass to "CEE_SET_METHOD".
*
*
* <object_tag> For dynamic objects, the tag passed to "CEE_OBJECT_CREATE".
* For configured objects, the tag returned by the object
* initialization up-call.
*
* <call_id> The unique ID of the call. You can use the "call_id" to find out
* more information about the call or caller. Pass the "call_id" to
* "CEE_RESPOND" from asynchronous methods to respond to a call.
* Pass the "call_id" to "CEE_TMP_ALLOCATE" to allocate memory that
* the CEE automatically frees when the call completes.
*
* <param_vector> An array of pointers to the output parameters. The first element
* is not used. The second element points to an exception structure.
* The third though "n" elements point to "Out" parameters.
*
*/
typedef void (*CEE_method_ptr) (
/* In */ CEE_tag_def method_tag,
/* In */ CEE_tag_def object_tag,
/* In */ const CEE_handle_def *call_id,
/* In */ void *const *param_vector
);
/*
* !CEE_object_call_completion_ptr
*
* The CEE calls an Asynchronous Object Call Completion Up-call function when
* an asynchronous object call is posted.
*
* You register a completion routine for an asynchronous object call with
* "CEE_OBJECT_CALL_POST".
*
* <call_tag1> The first arbitrary value you pass to
* "CEE_OBJECT_CALL_POST".
*
* <call_tag2> The second arbitrary value you pass to
* "CEE_OBJECT_CALL_POST".
*
* <param_vector> An array of pointers to the output parameters. The first
* element is not used. The second element points to an exception
* structure. The third though "n" elements point to "Out" parameters.
*
*/
typedef void (*CEE_object_call_completion_ptr) (
/* In */ CEE_tag_def call_tag1,
/* In */ CEE_tag_def call_tag2,
/* In */ const void *const *param_vector
);
/*
* !CEE_object_initialize_ptr
*
* CEE calls a Configured Object Initialization Up-call when a configured
* object is activated.
*
* The initialization function name is specified in the object's configuration.
* An object can be configured in a SAM file or by a call to "CEE_OBJECT_CONFIGURE".
*
* At a minimum, the initialization routine must create an implementation for the
* object being initialized (see "CEE_IMPLEMENTATION_CREATE") and return its handle
* in the "impl_handle" parameter.
*
* Set the "sts" to a non-zero value to indicate that the initialization has failed,
* and to prevent the CEE from activating the configured object.
*
* <object_handle> The handle of the newly-created object if initialization is
* successful. This parameter is comparable to the "object_handle"
* parameter in "CEE_OBJECT_CREATE".
*
* <param> An arbitrary value you pass to "CEE_OBJECT_CONFIGURE". This value
* does not have to be a string.
*
* <param_len> The number of bytes in "param".
*
* <sts> The object initialization status. Set this to zero to indicate
* that initialization succeeded.
*
* <obj_tag> An arbitrary value that will be passed to this objects methods
* when they are invoked. This provides a convenient way of matching
* the method invocation with the relevant object. This parameter is
* comparable to the "obj_tag" parameter in "CEE_OBJECT_CREATE".
*
* <impl_handle> The implementation handle. Use "CEE_IMPLEMENTATION_CREATE" to
* obtain this value. This handle indicates the interface that the
* object is to implement and the method functions that are to be called.
*
*/
typedef void (*CEE_object_initialize_ptr) (
/* In */ const CEE_handle_def *object_handle,
/* In */ const char *param,
/* In */ long param_len,
/* Out */ CEE_status *sts,
/* Out */ CEE_tag_def *obj_tag,
/* Out */ CEE_handle_def *implementation_handle
);
/*
* !CEE_timer_expiration_ptr
*
* CEE calls a Timer Expiration Up-call function when a timer expires.
* When you create a timer, you spcify an amount of time.
* The timer expires when this amount of time has elapsed.
*
* You register an expiration routine for a timer with "CEE_TIMER_CREATE".
*
* <tag> An arbitrary value you pass to "CEE_TIMER_CREATE".
*
*/
typedef void (*CEE_timer_expiration_ptr) (
/* In */ CEE_tag_def tag
);
/*
* !CEE_ti_resource_signal_ptr
*
* The CEE calls functions of type "CEE_ti_resource_signal_ptr" when a Titanium
* resource is signaled.
*
* You register a signal routine for a Titanium resource with "CEE_TI_SIGNAL_TAG_CREATE".
*
* <cee_tag> an arbitrary value you pass to "CEE_TI_SIGNAL_TAG_CREATE".
*
*/
typedef void (*CEE_ti_resource_signal_ptr) (
/* In */ CEE_tag_def cee_tag
);
/*
* !CEE_CALL_GET_OID
*
* "CEE_CALL_GET_OID" allows servers to retrieve the object identifier of
* a call.
*
* <call_id> specifies call whose object identifier is
* to be obtained
*
* <oid> object identifier
*
* <oid_len> object identifier length
*
* <=return-value> "CEE_SUCCESS" if the operation succeeded,
* otherwise the appropriate CEE status constant.
*/
extern CEE_status
CEE_CALL_GET_OID(
/* In */ const CEE_handle_def *call_id,
/* Out */ const char **oid,
/* Out */ IDL_unsigned_long *oid_len
);
/*
* !CEE_CALL_OID_DECOMPOSE
*
* "CEE_CALL_OID_DECOMPOSE" allows servers to retrieve the object group
* prefix and remainder (object identifier without prefix) of a call.
* The prefix pointer is set to NULL if the object identifier of the call
* does not have a prefix (oid is not a object group).
*
* <call_id> specifies call whose object identifier
* prefix and remainder is to be obtained
* <prefix> object identifier prefix pointer
*
* <prefix_len> prefix length
*
* <remainder> pointer to object identifier remainder
* (object identifier without prefix)
*
* <remainder_len> remainder length
*
* <=return-value> "CEE_SUCCESS" if the operation succeeded,
* otherwise the appropriate CEE status constant.
*/
extern CEE_status
CEE_CALL_OID_DECOMPOSE(
/* In */ const CEE_handle_def *call_id,
/* Out */ const char **prefix,
/* Out */ IDL_unsigned_long *prefix_len,
/* Out */ const char **remainder,
/* Out */ IDL_unsigned_long *remainder_len
);
/*
* "CEE_CALL_GET_REQUEST_SVC_CTX" allows serverss to retrieve a service
* context value that was sent by a client that called
* "CEE_PROXY_SET_REQUEST_SVC_CTX".
*
* See the description of "CEE_PROXY_SET_REQUEST_SVC_CTX" for a discussion
* of service context ID's and values.
*
*
* <call_id> specifies call whose service context is to be
* obtained
*
* <svc_ctx_type> specifies which service context is to be
* obtained.
*
* <svc_ctx_size_max> maximum number of bytes that should be written
* to "svc_ctx_value". If the service
* context to be retrived is too large then the
* return status will be CEE_SHORTOUTBUF
* and the minimum required size is returned in
* "svc_ctx_size"
*
* <svc_ctx_value> pointer a buffer that is to receive the
* service context value.
*
* <svc_ctx_size> number of bytes of data written to
* "svc_ctx_value"
*/
extern CEE_status
CEE_CALL_GET_REQUEST_SVC_CTX(
/* In */ const CEE_handle_def *call_id,
/* In */ IDL_unsigned_long svc_ctx_type,
/* In */ IDL_unsigned_long svc_ctx_size_max,
/* Out */ void *svc_ctx_value,
/* Out */ IDL_unsigned_long *svc_ctx_size
);
/*
* !CEE_CALL_MONITOR
*
* "CEE_CALL_MONITOR" registers a routine that the CEE calls when an asynchronous
* method becomes invalid.
*
* An asynchronous call can become invalid when the client destroys the proxy used
* for the call or when the client that made the call exits.
*
* You must provide a response to all calls, even when they become invalid.
*
* <call_id> A value that uniquely identifies the monitored call. The CEE
* this value to the "monitor_routine".
*
* <monitor_tag> An arbitrary value. This value is passed to "monitor_routine".
* This provides a mechanism to pass context information to
* "monitor_routine".
*
* <monitor_routine> The routnie up-called when "call_id" becomes invalid.
*
*/
extern CEE_status
CEE_CALL_MONITOR(
/* In */ const CEE_handle_def *call_id,
/* In */ CEE_tag_def monitor_tag,
/* In */ CEE_call_monitor_ptr monitor_routine
);
/*
* "CEE_CALL_SET_RESPONSE_SVC_CTX" associates a service context value
* with an active call. This service context value will be transmitted,
* in addition to the parameters, back to the client who can obtain the
* value using "CEE_PROXY_GET_RESPONSE_SVC_CTX".
*
* See the description of "CEE_PROXY_SET_REQUEST_SVC_CTX" for a discussion
* of service context ID's and values.
*
* A server can set any number of service contexts on a call.
*
* Synchronous servers must call "CEE_CALL_SET_RESPONSE_SVC_CTX" before
* returning from the method upcall.
*
* Synchronous servers must call "CEE_CALL_SET_RESPONSE_SVC_CTX" before
* responding to the call with CEE_RESPOND (or the generated xxx_res_
* function that calls CEE_RESPOND).
*
* If "service_context" is a null-pointer, the service context specified
* by "svc_ctx_type" (if any) is cleared.
*
* <call_id> specifies call whose service context is to be
* set.
*
* <svc_ctx_type> specifies which service context is to be set
*
* <svc_ctx_value> pointer to service context value that is to
* be set on the call. NULL means clear service
* context.
*
* <svc_ctx_size> number of bytes of data pointed to by
* "svc_ctx_value".
*/
extern CEE_status
CEE_CALL_SET_RESPONSE_SVC_CTX(
/* In */ const CEE_handle_def *call_id,
/* In */ IDL_unsigned_long svc_ctx_type,
/* In */ const void *svc_ctx_value,
/* In */ IDL_unsigned_long svc_ctx_size
);
/*
* "CEE_CAPSULE_SHUTDOWN" is called to shutdown the capsule.
* Any upcalls registered with CEE_OBJECT_SET_SHUTDOWN will be
* invoked and the execution loop within CEE_EXECUTE will then be
* terminated. The CEE main program exits when this happens.
* If the CEE main program is not used and the application has called
* CEE_EXECUTE itself then the application regains control and has the
* opportunity to perform further clean-up before exiting.
*/
extern CEE_status
CEE_CAPSULE_SHUTDOWN(void);
/*
* !CEE_CFG_DEALLOCATE
*
* "CEE_CFG_DEALLOCATE" frees memory allocated for configuration data.
*
* "CEE_CFG_GET", "CEE_CFG_QUALIFIED_GET", and "CEE_CFG_GET_RECORD" allocate memory
* for configuration data.
*
* <entry_value> A pointer to the configuration data to be freed.
*
* <return-value> "CEE_SUCCESS" if the operation succeeded, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_CFG_DEALLOCATE(
/* In */ void *entry_value
);
/*
* !CEE_CFG_GET define
*
* "CEE_CFG_GET" gets configuration information from an object.
*
* "CEE_CFG_GET_RECORD" and "CEE_CFG_QUALIFIED_GET" also get configuration
* information from an object. "CEE_CFG_GET" is a convenient macro that
* you can use when the type and name of the configured name are identical.
*
* Use "CEE_CFG_DEALLOCATE" to free the allocated memory when it is no longer
* needed.
*
* Usage example:
*
* myrec *rec;
*
* CEE_CFG_GET(myrec, &rec);
*
* <name> The name of the record containing the requested configuration data.
* Do not use quotes when specifying the entry name.
*
* <value> A pointer to the configuration data.
*
* <=CEE_SUCCESS> The call succeeded.
*
* <=CEE_SKINOTFOUND> The specified entry was not found. "value" is left
* unchanged. This allows you to point "value" to defaults
* before calling "CEE_CFG_GET".
*
* <=CEE_SKIERROR> Some other SKI error occurred. The error was logged by the CEE.
*
*/
#define CEE_CFG_GET(name, value) \
CEE_CFG_GET_RECORD("", -1, \
#name, -1, \
name ## _cin_, name ## _csz_ , \
(void **) (value))
/*
* !CEE_CFG_QUALIFIED_GET define
*
* "CEE_CFG_QUALIFIED_GET" gets configuration information from an object.
*
* "CEE_CFG_GET" and "CEE_CFG_GET_RECORD" also get configuration
* information from an object. "CEE_CFG_QUALIFIED_GET" is a convenient
* macro that you can use when the type and name of the configured name are identical
* and you want to specify the "qualifier" parameter.
*
* Use "CEE_CFG_DEALLOCATE" to free the allocated memory when it is no longer needed.
*
* Usage example:
*
* myrec *rec;
*
* CEE_CFG_QUALIFIED_GET(param, paramLen, myrec, &rec);
*
* <qualifier> The value prefixed to "entry_name" to create the SKI record name.
* This is usually the "param" value passed to a configured object
* initialization function.
*
* <qualifier_len> The size of "qualifier" in bytes. This is usually the "paramLen"
* value passed to a configured object initialization function.
*
* <name> The name of the record containing the requested configuration data.
* Do not use quotes when specifying the entry name.
*
* <value> A pointer to the configuration data.
*
* <=CEE_SUCCESS> The call succeeded.
*
* <=CEE_SKINOTFOUND> The specified entry was not found. "value" is left
* unchanged. This allows you to point "value" to defaults
* before calling "CEE_CFG_QUALIFIED_GET".
*
* <=CEE_SKIERROR> Some other SKI error occurred. The error was logged by the CEE.
*
*/
#define CEE_CFG_QUALIFIED_GET(qualifier, qualifier_len, name, value) \
CEE_CFG_GET_RECORD(qualifier, qualifier_len, \
#name, -1, \
name ## _cin_, name ## _csz_ , \
(void **) (value))
/*
* !CEE_CFG_GET_RECORD
*
* "CEE_CFG_GET_RECORD" gets configuration information from an object.
*
* Implementation libraries should use this function, rather than calling the SKI
* functions directly, so that they will get the correct object-specific configuration.
*
* The name of the SKI record is the concatenation of "qualifier", a separator, and
* "entry_name".
*
* Use "CEE_CFG_DEALLOCATE" to free the allocated memory when it is no longer needed.
*
* <qualifier> The value prefixed to "entry_name" to create the SKI record name.
* This is usually the "param" value passed to a configured object
* initialization function.
*
* <qualifier_len> The size of "qualifier" in bytes. This is usually the "paramLen"
* value passed to a configured object initialization function.
*
* <entry_name> The name of the record containing the requested configuration data.
* Do not use quotes when specifying the entry name.
*
* <entry_name_len> The size of "entry_name" in bytes.
*
* <entry_cin> The "CIN" description of the entry's data type. You can use the
* IDL-generated constant for this parameter ("xxx_cin_", where
* "xxx" is the IDL typedef name).
*
* <entry_cin_len> The size of "entry_cin" in bytes. You can use the IDL-generated
* constant for this parameter ("xxx_csz_", where "xxx" is the IDL
* typedef name).
*
* <entry_value> A pointer to the configuration data.
*
* <=CEE_SUCCESS> The call succeeded.
*
* <=CEE_SKINOTFOUND> The specified entry was not found. "entry_value" is left
* unchanged. This allows you to point "entry_value" to defaults
* before calling "CEE_CFG_GET_RECORD".
*
* <=CEE_SKIERROR> Some other SKI error occurred. The error was logged by the CEE.
*
*/
extern CEE_status
CEE_CFG_GET_RECORD(
/* In */ const char *qualifier,
/* In */ long qualifier_len,
/* In */ const char *entry_name,
/* In */ long entry_name_len,
/* In */ const char *entry_cin,
/* In */ long entry_cin_len,
/* Out */ void **entry_value
);
/*
* !CEE_CFG_SET define
*
* This define allows CEE_CFG_SET_RECORD to be
* called more conveniently from 'C' for the
* most common case where the type and name of
* the configured name are identical (see
* "CEE_CFG_SET_RECORD" for more details).
*
* Usage example:
*
* myrec defval;
*
* CEE_CFG_SET(myrec, &defval, IDL_FALSE);
*
* <name> is the unquoted entry name.
*
* <value> is a pointer to the configuration
* data.
*
* <return-value> same as "CEE_CFG_SET_RECORD".
*
*/
#define CEE_CFG_SET(name, value) \
CEE_CFG_SET_RECORD("", -1, \
#name, -1, \
name ## _cin_, name ## _csz_ , \
(void *) (value))
/*
* !CEE_CFG_QUALIFIED_SET define
*
* This define is the same as CEE_CFG_SET except that
* it allows the caller to specify the "qualifier"
* parameter. See CEE_CFG_SET_RECORD for more
* details.
*
* Usage example:
*
* myrec defval;
*
* CEE_CFG_QUALIFIED_SET(param, paramLen,
myrec, &defval);
*
* <qualifier> is the qualifier to be used.
* This is often the "param" passed to
* a configured object initialization
* function.
*
* <qualifier_len> is the size of "qualifier" in bytes.
* Usually, the value "paramLen" as
* passed to the configured object
* initialization function.
*
* <name> is the unquoted entry name.
*
* <value> is a pointer to the configuration
* data.
*
* <return-value> same as "CEE_CFG_SET_RECORD".
*
*/
#define CEE_CFG_QUALIFIED_SET(qualifier, qualifier_len, \
name, value) \
CEE_CFG_SET_RECORD(qualifier, qualifier_len, \
#name, -1, \
name ## _cin_, name ## _csz_ , \
(void *) (value))
/*
* !CEE_CFG_SET_RECORD
*
* "CEE_CFG_SET_RECORD" is used to set configuration
* data. Note that using this call are not persistent,
* they are not written to capsule's SKI file but are
* maintained in the capsule's memory.
*
* This call has two primary uses:
*
* - to set configuration parameters in applications
* that do not want to use SKI files. This function
* can be called before CEE_INITIALIZE.
*
* - to supply defaults for parameters that may not
* exist in the capsule's SKI file. This technique
* is preferable to simply ignoring the error from
* CEE_CFG_GET since the capsule infrastructure will
* be aware of the default value for management
* purposes.
*
* The name of the SKI record to be read is the
* concatenation of "qualifier", a separator and
* "entry_name".
*
*
* <qualifier> is prepended to "entry_name"
* to create the SKI record name.
*
* <qualifier_len> is the size of "qualifier" in
* bytes.
*
* <entry_name> is the name of the record
* containing the required
* configuration data.
*
* <entry_name_len> is the size of "entry_name" in
* bytes.
*
* <entry_cin> is the "CIN" description of the
* entry's data type. You can use
* the xxx_cin_ generated constant
* for this parameter where "xxx" is
* the IDL typedef name.
*
* <entry_cin_len> is the size of "entry_cin" in
* bytes. You can use the xxx_csz_
* generated constant for this
* parameter.
*
* <entry_value> is a pointer to the config data to
* be set. Passing NULL causes any
* previous value to be deleted.
* That is, a subsequent
* CEE_CFG_GET for this parameter
* will only retrieve the value from
* the SKI file.
*
*
* <return-value> is CEE_SUCCESS if the operation
* succeeded otherwise it indicates
* the reason for failure.
*
*/
extern CEE_status
CEE_CFG_SET_RECORD(
/* In */ const char *qualifier,
/* In */ long qualifier_len,
/* In */ const char *entry_name,
/* In */ long entry_name_len,
/* In */ const char *entry_cin,
/* In */ long entry_cin_len,
/* In */ const void *entry_value
);
/*
* !CEE_CFG_UPDATE_REGISTER
*
* "CEE_CFG_UPDATE_REGISTER" is used to register an
* application function that will be upcalled
* whenever the specified configuration changes.
* The value of a configuration parameter can
* change as a result of a management operation
* or a call to "CEE_CFG_SET_RECORD".
* the configuration data obtained with "CEE_CFG_GET"
* or "CEE_CFG_GET_RECORD".
*
* <entry_value> is pointer to the configuration data
* that was returned "CEE_CFG_GET_RECORD"
* (or the "CEE_CFG_GET" define).
*
* <update_routine> will be upcalled by the CEE whenever
* the value of this configuration
* parameter changes. Passing a NULL
* pointer deregisters a previously
* registered update routine.
*
* <cfg_tag> is an application supplied value
* that can be used to pass context
* to 'update_routine>.
*
* <return-value> is CEE_SUCCESS if the operation
* succeeded otherwise it indicates the
* reason for failure.
*
*/
extern CEE_status
CEE_CFG_UPDATE_REGISTER(
/* In */ const void *entry_value,
/* In */ CEE_cfg_update_ptr update_routine,
/* In */ CEE_tag_def cfg_tag
);
/*
* !CEE_EXECUTE
*
* "CEE_EXECUTE" executes the CEE main loop.
* The standard CEE "main" function calls "CEE_EXECUTE" on
* your behalf.
*
* <return-value> is CEE_SUCCESS if the operation succeeded otherwise
* it indicates the reason for failure.
*
*/
extern CEE_status
CEE_EXECUTE(void);
/*
* "CEE_EXECUTE_FINISH" causes the main loop to terminate on the next
* I/O or timer event. This is useful for applications that wish to call
* the CEE_EXECUTE but then regain control later on.
*/
extern CEE_status
CEE_EXECUTE_FINISH(void);
/*
* !CEE_HANDLE_IS_NIL
*
* "CEE_HANDLE_IS_NIL" returns true if the handle is nil (null), false if it does not.
* A handle is nil if it does not point to any object.
*
* <handle> The handle to be tested. The handle must be a valid pointer.
*
* <=IDL_TRUE> "handle" is nil.
*
* <=IDL_FALSE> "handle" is not nil, but not necessarily valid.
*
*/
extern IDL_boolean
CEE_HANDLE_IS_NIL(
/* In */ const CEE_handle_def *handle
);
/*
* !CEE_HANDLE_SET_NIL
*
* "CEE_HANDLE_SET_NIL" sets the handle to nil (null).
*
* <handle> The handle to be set. The handle must be a valid pointer.
*
*/
extern void
CEE_HANDLE_SET_NIL(
/* Out */ CEE_handle_def *handle
);
/*
* !CEE_IMPLEMENTATION_CREATE
*
* "CEE_IMPLEMENTATION_CREATE" creates an implementation.
*
* You can then use the implementation for more than one object.
*
* Use "CEE_IMPLEMENTATION_DESTROY" to delete an implementation.
*
* <intf_handle> The interface handle returned by "CEE_INTERFACE_CREATE".
*
* <impl_handle> The handle of the newly-created implementation.
*
* <return-value> CEE_SUCCESS if the operation succeeded, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_IMPLEMENTATION_CREATE(
/* In */ const CEE_handle_def *intf_handle,
/* Out */ CEE_handle_def *impl_handle
);
/*
* !CEE_IMPLEMENTATION_DESTROY
*
* "CEE_IMPLEMENTATION_DESTROY" destroys an implementation.
*
* Create an implementation with "CEE_IMPLEMENTATION_CREATE".
*
* <impl_handle> The handle of the implementation to be deleted.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_IMPLEMENTATION_DESTROY(
/* In */ const CEE_handle_def *impl_handle
);
/*
* !CEE_INITIALIZE
*
* "CEE_INITIALIZE" initializes the CEE.
*
* Use "CEE_INITIALIZE" to initialize the CEE within an executable. The CEE is
* initialized for you if you run the CEE from the command line:
*
* cee -n capsule_name
*
* <capsule_name> The name of the capsule. This is the name of the SKI file
* without the extension. This name identifies the capsule in
* error messages, and you use this name to obtain configuration
* data.
*
* <capsule_name_len> The size of "capsule_name" in bytes.
*
* <return-value> CEE_SUCCESS if the operation succeed, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_INITIALIZE(
/* In */ const char *capsule_name,
/* In */ long capsule_name_len
);
/*
* !CEE_INTERFACE_CREATE
*
* "CEE_INTERFACE_CREATE" creates an interface.
*
* You can use the interface for more than one object or proxy object.
*
* The operations (including their parameters and exceptions) for the interface are
* described in Compact IDL Notation (CIN). You usually use the CIN description generated
* by IDL.
*
* Use "CEE_INTERFACE_DESTROY" to delete an interface.
*
* <intf_cin> The interface in Compact IDL Notation (CIN). This is usually obtained
* from an IDL-generated constant ("xxx_ici_", where "xxx" is the IDL
* typedef name).
*
* <intf_cin_length> The length of "intf_cin" in bytes. This is usually obtained from an
* IDL-generated constant ("xxx_ics_", where "xxx" is the IDL typedef
* name).
*
* <intf_handle> The handle of the newly-created interface.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_INTERFACE_CREATE(
/* In */ const char *intf_cin,
/* In */ long intf_cin_length,
/* Out */ CEE_handle_def *intf_handle
);
/*
* !CEE_INTERFACE_DESTROY
*
* "CEE_INTERFACE_DESTROY" deletes the interface.
* Create interfaces with "CEE_INTERFACE_CREATE".
*
* <intf_handle> is the handle of the interface to be destroyed.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_INTERFACE_DESTROY(
/* In */ const CEE_handle_def *intf_handle
);
/*
* !CEE_NSK_ASYNCH_IO_PREPARE
*
* "CEE_NSK_ASYNCH_IO_PREPARE" registers a routine that the CEE calls when an
* asynchronous (nowaited) I/O operation completes.
*
* You must call "CEE_NSK_ASYNCH_IO_PREPARE" before you post an asynchronous (nowaited)
* I/O operation. The CEE waits for the I/O operation to complete and then calls the
* registered routine.
*
* The asynchronous I/O operation is subsequently posted using the tag obtained with the
* "io_id" parameter.
*
* This function is NSK-specific.
*
* <completion_routine> The routine up-called when the I/O completes.
*
* <io_tag> An arbitrary value. This value is passed to "completion_routine".
* This provides a mechanism to pass context information to
* "completion_routine".
*
* <filnum> The file number of the open file on which the asynchronous I/O is to be
* posted. If you require a tag for an anowaited SEVERCLASS_SEND_
* then use "-1" for "filnum".
*
* <io_id> A value that uniquely identifies the prepared I/O.
* Use this value when posting the asynchronous I/O operation
* or to abandon the prepared I/O with CEE_NSK_ASYNCH_IO_ABANDON.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_NSK_ASYNCH_IO_PREPARE(
/* In */ CEE_NSK_io_completion_ptr completion_routine,
/* In */ CEE_tag_def io_tag,
/* In */ short filnum,
/* Out */ long *io_id
);
/*
* !CEE_NSK_ASYNCH_IO_ABANDON
*
* "CEE_NSK_ASYNCH_IO_ABANDON" frees the resources allocated for the prepared asynchronous
* I/O operation.
*
* Call "CEE_NSK_ASYNCH_IO_ABANDON" if "CEE_NSK_ASYNCH_IO_PREPARE" was successfully
* called, but the asynchronous I/O operation cannot be posted due to an error.
*
* Calling "CEE_NSK_ASYNCH_IO_ABANDON" when an asynchronous I/O operation cannot be
* posted enables the CEE to de-allocate resources and correctly track the number of
* outstanding I/O operations.
*
* This function is NSK-specific.
*
* <io_id> The ID of the prepared I/O that is to be abandoned.
*
*/
extern CEE_status
CEE_NSK_ASYNCH_IO_ABANDON(
/* In */ long io_id
);
/*
* !CEE_NSK_ENDTRANSACTION_COMPLETION
*
* "CEE_NSK_ENDTRANSACTION_COMPLETION" registers a routine that the CEE calls when a
* nowait ENDTRANSACTION completes.
*
* This function is only needed if a component called "CEE_NSK_TFILE_OPEN" with a
* non-zero "nowait" parameter. Otherwise "CEE_NSK_ENDTRANSACTION_COMPLETION" must be
* called before calling ENDTRANSACTION. The same "trans-begin-tag" that was obtained
* from BEGINTRANSACTION must be supplied. This is necessary so that the CEE can inform
* the application when the transaction has really ended and so that the application
* can determine the final outcome of the transaction.
*
* To abort the transaction after calling "CEE_NSK_ENDTRANSACTION_COMPLETION" but before
* calling ENDTRANSACTION, call "CEE_NSK_ENDTRANSACTION_COMPLETION" again with the
* completion_routine parameter set to NULL. This frees the CEE resources allocated by
* the initial call to "CEE_NSK_ENDTRANSACTION_COMPLETION".
*
* This function is NSK-specific.
*
* <trans_begin_tag> A value that uniquely identifies the transaction. This value
* is returned by the Guardian BEGINTRANSACTION call.
*
* <completion_routine> The routine up-called when the ENDTRANSACTION completes.
*
* <tx_tag> An arbitrary value. This value is passed to "completion_routine".
* This provides a mechanism to pass context information to
* "completion_routine".
*
*/
extern CEE_status
CEE_NSK_ENDTRANSACTION_COMPLETION(
/* In */ long trans_begin_tag,
/* In */ CEE_NSK_end_tx_completion_ptr completion_routine,
/* In */ CEE_tag_def tx_tag
);
/*
* !CEE_NSK_FILE_OPEN_COMPLETION
*
* "CEE_NSK_FILE_OPEN_COMPLETION" registers a routine that the CEE calls when a nowait
* FILE_OPEN_ completes.
*
* Call "CEE_NSK_FILE_OPEN_COMPLETION" after every successful call to FILE_OPEN_ that
* has the "options.<1>" flag set. This enables the CEE to inform the application when
* the nowait open completes.
*
* To close the file before the nowait FILE_OPEN_ completes, call
* "CEE_NSK_FILE_OPEN_COMPLETION" again with the "completion_routine" parameter set to
* NULL. This frees the CEE resources allocated by the initial call to
* "CEE_NSK_FILE_OPEN_COMPLETION".
*
* This function is NSK-specific.
*
* <filnum> The file number as returned by the nowait FILE_OPEN_.
*
* <completion_routine> The routine up-called when the FILE_OPEN_ completes.
*
* <open_tag> An arbitrary value. This value is passed to
* "completion_routine". This provides a mechanism to pass
* context information to "completion_routine".
*
*/
extern CEE_status
CEE_NSK_FILE_OPEN_COMPLETION(
/* In */ short filnum,
/* In */ CEE_NSK_open_completion_ptr completion_routine,
/* In */ CEE_tag_def open_tag
);
/*
* !CEE_NSK_RECEIVE_REGISTER
*
* "CEE_NSK_RECEIVE_REGISTER" registers an object that handles messages on $RECEIVE
* that are not required by the CEE.
*
* The interface to this object (CEERCV) is defined in "ceercv.idl". The object can
* be either configured or dynamically created and can be either internal or external
* to the capsule.
*
* You can register more than one $RECEIVE handler object. If more than one $RECEIVE
* handler objects is registered, the objects are called in turn for each message
* until one of them accepts it. An object accepts a message by not raising the
* "decline" exception.
*
* Re-register a $RECEIVE handler object by calling "CEE_NSK_RECEIVE_DEREGISTER".
*
* This function is NSK-specific.
*
* <objref> The object reference of the object that handles $RECEIVE messages.
*
*/
extern CEE_status
CEE_NSK_RECEIVE_REGISTER(
/* In */ const IDL_Object objref
);
/*
* !CEE_NSK_RECEIVE_DEREGISTER
*
* "CEE_NSK_RECEIVE_DEREGISTER" de-registers a $RECEIVE handler object.
*
* Use "CEE_NSK_RECEIVE_REGISTER" to register a $RECEIVE handler object.
*
* This function is NSK-specific.
*
* <objref> The object reference to be de-registered.
*
*/
extern CEE_status
CEE_NSK_RECEIVE_DEREGISTER(
/* In */ const IDL_Object objref
);
/*
* !CEE_NSK_TFILE_OPEN
*
* "CEE_NSK_TFILE_OPEN" opens the Transaction Monitoring Facilitys (TMF) TFILE, which
* is known as $TMP.
*
* Call "CEE_NSK_TFILE_OPEN" during initialization of components that use the Guardian
* BEGINTRANSATCION, ABORTTRANSACTION, and ENDTRANSACTION routines.
*
* All components must share the capsule's single open, so you should never open $TMP
* directly with FILE_OPEN_.
*
* The nowait parameter allows the component to specify the behavior of ENDTRANSACTION.
* If nowait is zero, then ENDTRANSACTION will be a waited operation. If nowait is
* non-zero, then ENDTRANSACTION will be a nowaited operation.
*
* If ENDTRANSACTION is a nowaited operation, call "CEE_NSK_ENDTRANSACTION_COMPLETION"
* before each call to ENDTRANSACTION. This allows the component to register a routine
* to be called by the CEE when the transaction has ended.
*
* If a component uses ENDTRANSACTION as a waited transaction, it should still call
* "CEE_NSK_TFILE_OPEN" with nowait set to zero. This ensures that Gaurdian disallows
* any attempt to mix waited and nowaited components in the same capsule.
*
* This function is NSK-specific.
*
* <nowait> The behavior of ENDTRANSACTION. Set this value to zero if you want
* ENDTRANSACTION to be a waited operation. Set this value to non-zero
* if you want ENDTRANSACTION to be a nowaited operation.
*
*/
extern CEE_status
CEE_NSK_TFILE_OPEN(
/* In */ short nowait
);
/*
* !CEE_NT_ASYNCH_IO_PREPARE
*
* "CEE_NT_ASYNCH_IO_PREPARE" registers a routine that the CEE calls when an
* asynchronous (overlapped) I/O operation completes.
*
* You must call "CEE_NT_ASYNCH_IO_PREPARE" before you post an asynchronous (overlapped)
* I/O operation. The CEE waits for the I/O operation to complete and then calls the
* registered routine.
*
* The asynchronous I/O operation is subsequently posted after placing the event handle
* obtained from the io_id parameter in the OVERLAPPED structure.
*
* Call "CEE_NT_ASYNCH_IO_ABANDON" to cancel up-calls on the I/O handle.
*
* This function is Windows NT-specific.
*
* <completion_routine> The routine up-called when the I/O completes.
*
* <io_tag> An arbitrary value. This value is passed to "completion_routine".
* This provides a mechanism to pass context information to
* completion_routine.
*
* <io_id> An event handle. Place this value in the OVERLAPPED structure
* passed to the I/O operation (ReadFile or WriteFile).
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_NT_ASYNCH_IO_PREPARE(
/* In */ CEE_NT_io_completion_ptr completion_routine,
/* In */ CEE_tag_def io_tag,
/* Out */ long *io_id
);
/*
* !CEE_NT_ASYNCH_IO_REGISTER
*
* "CEE_NT_ASYNCH_IO_REGISTER" registers a routine that the CEE calls when an
* asynchronous (overlapped) I/O operation completes.
*
* "CEE_NT_ASYNCH_IO_REGISTER" is similar to "CEE_NT_ASYNCH_IO_PREPARE" except the
* caller supplies the NT event handle and the registration is persistent.
*
* Call "CEE_NT_ASYNCH_IO_ABANDON" to cancel up-calls on the I/O handle.
*
* This function is Windows NT-specific.
*
* <hEvent> The Windows event HANDLE.
*
* <completion_routine> The routine up-called when the I/O completes.
*
* <io_tag> An arbitrary value. This value is passed to
* "completion_routine". This provides a mechanism to pass
* context information to "completion_routine".
*
*/
extern CEE_status
CEE_NT_ASYNCH_IO_REGISTER(
/* In */ void *hEvent,
/* In */ CEE_NT_io_completion_ptr completion_routine,
/* In */ CEE_tag_def io_tag
);
/*
* !CEE_NT_ASYNCH_IO_ABANDON
*
* "CEE_NT_ASYNCH_IO_ABANDON" frees the resources allocated by either
* "CEE_NT_ASYNCH_IO_PREPARE" or "CEE_NT_ASYNCH_IO_REGISTER".
*
* Call "CEE_NT_ASYNCH_IO_ABANDON" if "CEE_NT_ASYNCH_IO_PREPARE" or
* "CEE_NT_ASYNCH_IO_REGISTER" was successfully called, but the asynchronous I/O
* operation cannot be posted due to an error.
*
* Calling "CEE_NT_ASYNCH_IO_ABANDON" when an asynchronous I/O operation cannot be
* posted enables the CEE to de-allocate resources and correctly track the number
* of outstanding I/O operations.
*
* This function is Windows NT-specific.
*
* <io_id> The I/O that is to be abandoned. If the I/O was prepared
* by "CEE_NT_ASYNCH_IO_PREPARE", this is the event handle.
* If the I/O was registered with "CEE_NT_ASYNCH_IO_REGISTER",
* this is the "hEvent".
*
*/
extern CEE_status
CEE_NT_ASYNCH_IO_ABANDON(
/* In */ long io_id
);
/*
* !CEE_OBJECT_CALL
*
* "CEE_OBJECT_CALL" makes a synchronous call to an object.
*
* <proxy_handle> The proxy handle. This value is returned by "CEE_PROXY_CREATE".
* This specifies the Native-mode Object Reference (NOR) to be called.
*
* <operation_idx> The operation to be called. This is an index to the operation in
* the interface description that was supplied when the proxy was
* created. This is usually specified using a IDL-generated constant
* ("xxx_ldx_", where "xxx" is the IDL typedef name).
*
* <param_vector> An array of pointers to the exception structure, output parameters,
* and input parameters. The first element points to the exception
* structure. If the operation is not of type "void", then the second
* element points to the variable that receives the operation's result.
* The third through "n" elements point to the operation's input and
* output parameters. The input and output parameters are in the same
* order as they were defined in IDL.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern void
CEE_OBJECT_CALL(
/* In */ const CEE_handle_def *proxy_handle,
/* In */ long operation_idx,
/* In */ void **param_vector
);
/*
* !CEE_OBJECT_CALL_POST
*
* "CEE_OBJECT_CALL_POST" an asynchronous call to an object.
*
*
* <proxy_handle> The proxy handle. This value is returned by "CEE_PROXY_CREATE".
* This specifies the Native-mode Object Reference (NOR) to be called.
*
* <operation_idx> The operation to be called. This is an index to the operation in
* the interface description that was supplied when the proxy was
* created. This is usually specified using a IDL-generated constant
* ("xxx_ldx_", where "xxx" is the IDL typedef name).
*
* <param_vector> An array of pointers to the object call's input parameters. The
* input parameters are in the same order as they were defined in IDL.
*
* <completion_routine> The routine up-called when either a response from the object is
* received or an error occurred that would prevent a response.
*
* <completion_tag_1> An arbitrary value. This value is passed to "completion_routine".
* This provides a mechanism to pass context information to
* "completion_routine".
*
* <completion_tag_2> An arbitrary value. This value is passed to "completion_routine".
* This provides a mechanism to pass context information to
* "completion_routine".
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_OBJECT_CALL_POST(
/* In */ const CEE_handle_def *proxy_handle,
/* In */ long operation_idx,
/* In */ const void *const *param_vector,
/* In */ CEE_object_call_completion_ptr completion_routine,
/* In */ CEE_tag_def call_tag1,
/* In */ CEE_tag_def call_tag2
);
/*
* !CEE_OBJECT_CONFIGURE
*
* "CEE_OBJECT_CONFIGURE" sets the configuration parameters for an object.
*
* <oid> The object's ID. This has the same syntax as an IDL identifier.
*
* <oid_len> The number of bytes in "oid".
*
* <implib_name> The name of the implementation library. This parameter is
* currently ignored on the NSK platform.
*
* <implib_name_len> The number of bytes in "impl_name".
*
* <entry_name> The name of the object initialization function in the library
* specified by "impl_name". The CEE calls this function when the
* object is activated.
*
* <entry_name_len> The number of bytes in "entry_name".
*
* <param> Arbitrary configuration data that is passed to the object
* initialization function. This value does not have to be a string.
*
* <param_len> The number of bytes in "param".
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_OBJECT_CONFIGURE(
/* In */ const char *oid,
/* In */ long oid_len,
/* In */ const char *implib_name,
/* In */ long implib_name_len,
/* In */ const char *entry_name,
/* In */ long entry_name_len,
/* In */ const char *param,
/* In */ long param_len
);
/*
* !CEE_OBJECT_CREATE
*
* "CEE_OBJECT_CREATE" dynamically creates an object.
*
* Use "CEE_OBJECT_DESTROY" to delete dynamically-created objects.
*
* <obj_tag> An arbitrary value. This value is passed to this objects
* methods. This provides a mechanism to pass context
* information to an objects methods.
*
* <impl_handle> The implementation handle. Use "CEE_IMPLEMENTATION_CREATE"
* to obtain this value. This handle defines the objects
* interface and operations.
*
* <object_handle> The handle of the newly-created object.
*
*/
extern CEE_status
CEE_OBJECT_CREATE(
/* In */ CEE_tag_def obj_tag,
/* In */ const CEE_handle_def *impl_handle,
/* Out */ CEE_handle_def *object_handle
);
/*
* !CEE_OBJECT_DESTROY
*
* "CEE_OBJECT_DESTROY" deletes a dynamic object.
*
* Dynamically create an object with "CEE_OBJECT_CREATE".
*
* <object_handle> The handle of the object to be destroyed.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_OBJECT_DESTROY(
/* In */ const CEE_handle_def *object_handle
);
/*
* !CEE_OBJECT_GET_OBJREF
*
* "CEE_OBJECT_GET_OBJREF" retrieves an object's reference.
*
* <object_handle> The handle of the object whose object reference is
* requested.
*
* <objref_size_max> The maximum length of "objref", including a terminating
* NULL character. This value is usually determined by
* calling "CEE_OBJREF_GET_SIZE_MAX".
*
* <objref> The object's reference.
*
* <objref_size> The size of "objref" in bytes, including a terminating
* NULL character. This value is not set if the pointer
* is NULL.
*
*/
extern CEE_status
CEE_OBJECT_GET_OBJREF(
/* In */ const CEE_handle_def *Object_handle,
/* In */ IDL_unsigned_long objref_size_max,
/* Out */ IDL_Object objref,
/* Out */ IDL_unsigned_long *objref_size
);
/*
* !CEE_OBJECT_GET_PREFIX
*
* "CEE_OBJECT_GET_PREFIX" retrieves the object group prefix for
* a object that has been configured to be an object group.
*/
extern CEE_status
CEE_OBJECT_GET_PREFIX(
/* In */ const CEE_handle_def *object_handle,
/* Out */ char **prefix,
/* Out */ IDL_unsigned_long *prefix_len
);
/*
* !CEE_OBJECT_SET_IDENTITY
*
* "CEE_OBJECT_SET_IDENTITY" is used to associate
* an application defined string with an object
* to improve diagnostics and manageability.
* This function can be used for configured or
* dynamic objects. Objects initially have the
* null string as their identity. The identity
* string typically contains the name of the
* component, its version and instance data.
* The identity string can be accessed by Capsule
* Management Object clients.
*
* <object_handle> is the handle of the object
* whose identity is to be set.
*
* <identity> application defined string to
* be attached to the object.
*
*/
extern CEE_status
CEE_OBJECT_SET_IDENTITY(
/* In */ const CEE_handle_def *object_handle,
/* In */ const char *identity
);
/*
* !CEE_OBJECT_SET_SHUTDOWN
*
* "CEE_OBJECT_SET_SHUTDOWN" is used to declare
* an shutdown function for this object.
*
* The specified function will be invoked by the
* CEE if the capsule is shutdown for one of the
* following reasons:
*
* - Management request (e.g. from cmu)
*
* - Application called CEE_CAPSULE_SHUTDOWN
*
* - (NSK only) Pathway "STOP SERVER" command.
*
*
* <object_handle> is the handle of the object
* whose shutdown handler is
* be set/cleared.
*
* <shutdown_routine> is the function to be called
* when the object is shut down.
* Passing NULL clears any
* previously set value.
*
*/
extern CEE_status
CEE_OBJECT_SET_SHUTDOWN(
/* In */ const CEE_handle_def *object_handle,
/* In */ CEE_object_shutdown_ptr shutdown_routine
);
/*
* !CEE_OBJECT_SET_STATS_PTR
*
* "CEE_OBJECT_SET_STATS_PTR" is used to register
* a pointer to the object's statisics that are
* to be accessed by management clients. The
* statistics are contained in an IDL defined
* data-type.
*
*
* <object_handle> is the handle of the object
* whose statistics are to be
* registered.
*
* <stats_cin> is the "CIN" description of the
* statistics data type. You can use
* the xxx_cin_ generated constant
* for this parameter where "xxx" is
* the IDL typedef name.
*
* <stats> pointer to the statistics.
* Passing NULL clears any
* previously set value.
*
*/
extern CEE_status
CEE_OBJECT_SET_STATS_PTR(
/* In */ const CEE_handle_def *object_handle,
/* In */ const char *stats_cin,
/* In */ const void *stats
);
/*
* !CEE_OBJREF_GET_SIZE_MAX
*
* "CEE_OBJREF_GET_SIZE_MAX" returns the maximum length of an object reference. This
* length includes the terminating NULL character.
*
* You can configure this value by calling "CEE_OBJECT_CONFIGURE" with
* CEECFG::MaxObjrefSize.
*
* <objref_size_max> maximum size of an object reference buffer
*
*/
extern CEE_status
CEE_OBJREF_GET_SIZE_MAX(
/* Out */ IDL_unsigned_long *objref_size_max
);
/*
* !CEE_OBJREF_IS_NIL
*
* "CEE_OBJREF_IS_NIL" returns true if the object reference is nil (null), false if
* it is not. An object reference is nil if it does not point to any object reference.
*
* "CEE_OBJREF_IS_NIL" does not determine whether or not the object reference is valid.
*
* <objref> The object reference to be tested.
*
* <=IDL_TRUE> "objref" is nil.
*
* <=IDL_FALSE> "objref" is not nil, but not necessarily valid.
*
*/
extern IDL_boolean
CEE_OBJREF_IS_NIL(
/* In */ const IDL_Object objref
);
/*
* !CEE_OBJREF_SET_NIL
*
* "CEE_OBJREF_SET_NIL" sets an object reference to nil (null).
*
* <objref_size_max> The maximum length of objref, including a terminating
* NULL character. This value is usually determined by
* calling "CEE_OBJREF_GET_SIZE_MAX".
*
* <objref> The object reference to be set. The object reference
* must be a valid pointer.
*
* <objref_size> The size of "objref" in bytes, including a terminating
* NULL character. This value is not set if the pointer
* is NULL.
*
*/
extern CEE_status
CEE_OBJREF_SET_NIL(
/* In */ IDL_unsigned_long objref_size_max,
/* Out */ IDL_Object objref,
/* Out */ IDL_unsigned_long *objref_size
);
/*
* !CEE_PROXY_CREATE
*
* "CEE_PROXY_CREATE" dynamically creates a proxy object.
*
* Use a proxy object to make object calls.
*
* Delete dynamically-created proxy objects with "CEE_PROXY_DESTROY".
*
* <objref> The object reference of the object that you will call.
*
* <intf_handle> The interface handle. This value is returned by "CEE_INTERFACE_CREATE".
* The interface handle defines the input and output parameters and the
* exceptions for the operations.
*
* <proxy_handle> The handle of the newly-created proxy object.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_PROXY_CREATE(
/* In */ const IDL_Object objref,
/* In */ const CEE_handle_def *intf_handle,
/* Out */ CEE_handle_def *proxy_handle
);
/*
* !CEE_PROXY_DESTROY
*
* "CEE_PROXY_DESTROY" deletes a proxy object.
*
* Dynamically create proxies with "CEE_PROXY_CREATE".
*
* <proxy_handle> The handle of the proxy object to be destroyed.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_PROXY_DESTROY(
/* In */ const CEE_handle_def *proxy_handle
);
/*
* !CEE_PROXY_GET_OBJREF
*
* "CEE_PROXY_GET_OBJREF" returns the object reference of a proxy object.
*
* The object reference is not necessarily identical to the "objref" parameter passed
* to "CEE_OBJREF_CREATE".
*
* <proxy_handle> The handle of the proxy object.
*
* <objref_size_max> The maximum length of "objref", including a terminating
* NULL character. This value is usually determined by
* calling "CEE_OBJREF_GET_SIZE_MAX".
*
* <objref> The object reference of the proxy object. The object
* reference must be a valid pointer.
*
* <objref_size> The size of "objref" in bytes, including a terminating
* NULL character. This value is not set if the pointer
* is NULL.
*
*/
extern CEE_status
CEE_PROXY_GET_OBJREF(
/* In */ const CEE_handle_def *proxy_handle,
/* In */ IDL_unsigned_long objref_size_max,
/* Out */ IDL_Object objref,
/* Out */ IDL_unsigned_long *objref_size
);
/*
* "CEE_PROXY_GET_RESPONSE_SVC_CTX" allows clients to retrieve a service
* context value that was returned by a server that called
* "CEE_CALL_SET_RESPONSE_SVC_CTX". The client calls
* "CEE_PROXY_GET_RESPONSE_SVC_CTX" after an object call on the proxy
* has completed successfully.
*
* See the description of "CEE_PROXY_SET_REQUEST_SVC_CTX" for a discussion
* of service context ID's and values.
*
*
* <proxy_handle> proxy whose service context is to be obtained
*
* <svc_ctx_type> specifies which service context is to be
* obtained.
*
* <svc_ctx_size_max> maximum number of bytes that should be written
* to "svc_ctx_value". If the service
* context to be retrived is too large then the
* return status will be CEE_SHORTOUTBUF
* and the minimum required size is returned in
* "svc_ctx_size"
*
* <svc_ctx_value> pointer a buffer that is to receive the
* service context value.
*
* <svc_ctx_size> number of bytes of data written to
* "svc_ctx_value"
*/
extern CEE_status
CEE_PROXY_GET_RESPONSE_SVC_CTX(
/* In */ const CEE_handle_def *proxy_handle,
/* In */ IDL_unsigned_long svc_ctx_type,
/* In */ IDL_unsigned_long svc_ctx_size_max,
/* Out */ void *svc_ctx_value,
/* Out */ IDL_unsigned_long *svc_ctx_size
);
/*
* "CEE_PROXY_SET_REQUEST_SVC_CTX" associates a service context value
* with the proxy. This service context value will be transmitted in addition
* to the parameters on every object call that is subsequently made using
* this proxy. The service context value can be accessed by the transport
* that is used to communicate the object call and may affect the behavior
* of that transport.
*
* The service context can also be accessed by the server, see
* "CEE_CALL_SET_REQUEST_SVC_CTX. The service context thus also provides a
* mechanism for clients and server to communicate unstructured information
* that is not specified in the IDL interface definition.
*
* Service context values are not marshaled during transmission. This
* means that the sender and recipient are repsonible for any presentation
* conversion such as big/little-endian conversion.
*
* A client can set any number of service contexts on a proxy. Each service
* context is identified by a numeric "service context ID". The intended
* recipient of the service context must use the same ID to retrieve the
* value. Applications should us service context ID's greater/equal to
* CEE_USER_SERVICE_CONTEXT_ID_MIN to ensure no conflicts with internal
* mechanisms that use service context.
*
* If "service_context" is a null-pointer, the service context specified
* by "svc_ctx_type" (if any) is cleared.
*
* <proxy_handle> proxy whose service context is to be set
*
* <svc_ctx_type> specifies which service context is to be set
*
* <svc_ctx_value> pointer to service context value that is to
* be set on the proxy. NULL means clear service
* context.
*
* <svc_ctx_size> number of bytes of data pointed to by
* "svc_ctx_value".
*/
extern CEE_status
CEE_PROXY_SET_REQUEST_SVC_CTX(
/* In */ const CEE_handle_def *proxy_handle,
/* In */ IDL_unsigned_long svc_ctx_type,
/* In */ const void *svc_ctx_value,
/* In */ IDL_unsigned_long svc_ctx_size
);
/*
* !CEE_RESPOND
*
* "CEE_RESPOND" sends the results of an asynchronous call to the caller.
*
* In the asynchronous model, methods are called with input parameters and a "call_id".
* "CEE_RESPOND" sends the output parameters to the corresponding "call_id".
*
* You can call "CEE_RESPOND" when the method exits, or at a later time (when some
* other operation posted by the method completes, for example).
*
* To raise a standard exception, see "CEE_RESPOND_WITH_STDEXC".
*
* <call_id> The ID of the call to which to respond. This value was passed to
* the asynchronous method up-call.
*
* <param_vector> An array of pointers to the exception structure and output parameters.
* The first element points to the exception structure. If the operation
* is not of type void, then the second element points to the variable
* that receives the operation's result. The third through "n" elements
* point to the operation's output parameters. The output parameters are
* in the same order as they were defined in IDL. If the contents of the
* exception structure imply that the operation failed, only the first
* element in the array is relevant.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_RESPOND(
/* In */ const CEE_handle_def *call_id,
/* In */ const void *const *param_vector
);
/*
* !CEE_SET_METHOD
*
* "CEE_SET_METHOD" specifies the method that CEE calls for an operation.
*
* You can set or change methods before or after object creation. If no method is set
* for a given operation, or if an operations method is set to NULL, CEE generates a
* standard exception when a capsule calls the operation.
*
* <impl_handle> The handle of the implementation. This value is assigned by
* "CEE_IMPLEMENTATION_CREATE".
*
* <operation_idx> The operation to which to assign the method. This is an index
* to the method in the interface description. This is usually
* specified using a IDL-generated constant ("xxx_ldx_", where "xxx"
* is the IDL typedef name).
*
* <method_tag> An arbitrary value. This value is passed to "method". This provides
* a mechanism to pass context information to method. This tag saves
* generated method wrappers from having to allocate memory to store
* the address of the real method.
*
* <synch> The behavior of the method. Use "CEE_SYNCH" if the method is
* synchronous. Synchronous methods are called with both the
* operation's input and output parameters. Use "CEE_ASYNCH" if the
* method is asynchronous. Asynchronous methods are called with input
* parameters only, then respond with "CEE_RESPOND".
*
* <method> The function that implements the specified operation.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_SET_METHOD(
/* In */ const CEE_handle_def *impl_handle,
/* In */ long operation_idx,
/* In */ CEE_tag_def method_tag,
/* In */ CEE_synch_def synch,
/* In */ CEE_method_ptr method
);
/*
* !CEE_SIGNAL_HANDLER_CREATE
*
* "CEE_SIGNAL_HANDLER_CREATE" registers functions that the CEE calls when a specified
* signal is generated.
*
* Remove signal handlers with "CEE_SIGNAL_HANDLER_DESTROY".
*
* <signal_number> The monitored signal number. Signal numbers are defined
* in the standard C header file "signal.h".
*
* <signal_handler> The routine up-called when the signal is generated.
*
* <signal_tag> An arbitrary value. This value is passed to
* "signal_handler". This provides a mechanism to pass
* context information to "signal_handler".
*
* <signal_handler_handler> The handle of the newly-created signal handler.
*
*/
extern CEE_status
CEE_SIGNAL_HANDLER_CREATE(
/* In */ int signal_number,
/* In */ CEE_signal_handler_ptr signal_handler,
/* In */ CEE_tag_def signal_tag,
/* Out */ CEE_handle_def *signal_handler_handle
);
/*
* !CEE_SIGNAL_HANDLER_DESTROY
*
* "CEE_SIGNAL_HANDLER_DESTROY" removes signal handlers.
*
* Register signal handlers with "CEE_SIGNAL_HANDLER_CREATE".
*
* <signal_handler_handler> The handle of the signal to be removed.
*
*/
extern CEE_status
CEE_SIGNAL_HANDLER_DESTROY(
/* In */ const CEE_handle_def *signal_handler_handle
);
/*
* !CEE_SRT_ADD_RESOURCES
*
*
* <blockname> The name of the Service Resource Block
* int which the resource is to be added
*
* <serviceType> The type of service resources to be added.
* Either CEE_SRT_RESOURCE_TYPE_IMPLEMENTER
* or CEE_SRT_RESOURCE_TYPE_PROVIDER
*
* <buffer> A buffer containing a string array of resources
* to be added to the specified block.
*
* <bufferEntryCount> The number of resources in "buffer".
*
* Returns:
*
* <=CEE_ALLOCFAIL> Failed to allocate memory for the new resource.
*
* <=CEE_INTERNALFAIL> A internal failure occured on creating a new
* resource block for the resource. Please report
* to Tantau suppport.
*
* <=CEE_SUCCESS> Resources were successfully added.
*
*/
extern CEE_status
CEE_SRT_ADD_RESOURCES(
/* in */ char *blockName,
/* in */ IDL_unsigned_long serviceType,
/* in */ IDL_string *buffer,
/* in */ IDL_unsigned_long *bufferEntryCount
);
/*
* !CEE_SRT_GET_RESOURCES
*
* Returns a list of resources currently resident in
* the Service Resource Table.
*
* The Service Resource Table is a configured entity which
* is used in associating a pseudo-object reference with
* a series of real object references. This enables
* object reference switching according to some policy.
*
* <blockname> The name of the Service Resource Block
* to be referenced
*
*
* <serviceType> The type of service resources to be recovered.
* Either CEE_SRT_RESOURCE_TYPE_IMPLEMENTER
* or CEE_SRT_RESOURCE_TYPE_PROVIDER
*
* <policy> The name of the policy associated with the
* block of resources.
*
* <buffer> A buffer to receive a string array of resource
* names. If the buffer is specified as NULL,
* then only "bufferLength" and "entryCount" are
* returned. This mechanism enables the caller to
* determine how much memory to allocate before
* recovering the resources.
*
* <bufferLength> On input, specifies the size of "buffer". On
* output, specifies the space used or required.
*
* <bufferEntryCount> Receives a count of the resource entries
* that were found in the Service Resource
* Table for the specified block.
*
* Returns:
*
* <=CEE_DOESNOTEXIST> The specified block does not exist or is
* empty.
*
* <=CEE_SHORTOUTBUF> The output buffer could not accommodate
* all the resources that were found. If
* "buffer" was specified as NULL or a zero
* "bufferLength" was specified, then
* "bufferLength" and "bufferEntryCount" will
* contain the required buffer length and number
* of resources respectively. Otherwise, the
* buffer will contain some, but not all, of the
* resources. in this case "bufferLength" will
* indicate the buffer space used, and
* "bufferEntryCount" will indicate the number
* of resources returned.
*
* <=CEE_SUCCESS> All resources could be returned.
*
*/
extern CEE_status
CEE_SRT_GET_RESOURCES(
/* in */ char *blockName,
/* in */ IDL_unsigned_long serviceType,
/* out */ IDL_string policy,
/* in out */ IDL_string *buffer,
/* in out */ IDL_unsigned_long *bufferLength,
/* out */ IDL_unsigned_long *bufferEntryCount
);
/*
* !CEE_STATUS_TO_TEXT
*
* "CEE_STATUS_TO_TEXT" returns a string that describes the specified CEE status constant.
*
* <sts> The CEE status constant whose description is requested.
*
* <=descr> The null-terminated string containing the description of "sts".
*
*/
extern char *
CEE_STATUS_TO_TEXT(
/* In */ CEE_status sts
);
/*
* !CEE_TI_SIGNAL_TAG_CREATE
*
* "CEE_TI_SIGNAL_TAG_CREATE" registers a routine that the CEE calls when the
* specified Titanium signal tag is generated. This provides a mechanism to
* integrate asynchronous Titanium operations into the CEE's up-call model.
*
* "CEE_TI_SIGNAL_TAG_CREATE" returns a Titanium tag that you can pass to
* "OC_PortAttributeSet".
*
* There is a limit to the number of signal tags. You can configure this value
* by calling "CEE_OBJECT_CONFIGURE" with CEECFG::MaxTitaniumSignalTags.
*
* Remove Titanium signal handlers with "CEE_TI_SIGNAL_TAG_DESTROY".
*
* <signal_routine> The routine up-called when the Titanium resource tag is signaled.
*
* <cee_tag> An arbitrary value. This value is passed to "signal_routine".
* This provides a mechanism to pass context information to
* "signal_routine".
*
* <signal_tag> The newly-created Titanium resource signal tag. You can pass
* this value to "OC_PortAttributeSet".
*
*/
extern CEE_status
CEE_TI_SIGNAL_TAG_CREATE(
/* In */ CEE_ti_resource_signal_ptr signal_routine,
/* In */ CEE_tag_def cee_tag,
/* Out */ unsigned long *signal_tag
);
/*
* !CEE_TI_SIGNAL_TAG_DESTROY
*
* "CEE_TI_SIGNAL_TAG_DESTROY" removes a Titanium resource signal tag.
*
* Create Titanium resource signal tags with "CEE_TI_SIGNAL_TAG_CREATE".
*
* <signal_tag> The Titanium signal tag to be removed.
*
*/
extern CEE_status
CEE_TI_SIGNAL_TAG_DESTROY(
/* In */ unsigned long signal_tag
);
/*
* !CEE_TIMER_CREATE
*
* "CEE_TIMER_CREATE" registers a routine that the CEE calls after the specified
* time elapses.
*
* Remove the timer using "CEE_TIMER_DESTROY".
*
* <seconds> The number of seconds (in addition to microseconds) before
* "expiration_routine" is called.
*
* <microseconds> The number of microseconds (in addition to seconds) before
* "expiration_routine" is called. This value must be less
* than 1000000.
*
* <expiration_routine> The routine up-called after "seconds" plus "microseconds"
* have elapsed.
*
* <timer_tag> An arbitrary value. This value is passed to
* "expiration_routine". This provides a mechanism to pass
* context information to "expiration_routine".
*
* <timer_handle> The handle of the newly-created timer.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CE status constant.
*
*/
extern CEE_status
CEE_TIMER_CREATE(
/* In */ long seconds,
/* In */ long microseconds,
/* In */ CEE_timer_expiration_ptr expiration_routine,
/* In */ CEE_tag_def timer_tag,
/* Out */ CEE_handle_def *timer_handle
);
/*
* !CEE_TIMER_DESTROY
*
* "CEE_TIMER_DESTROY" removes the timer.
*
* Create timers with "CEE_TIMER_CREATE".
*
* <timer-handle> The handle of the timer to be removed.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_TIMER_DESTROY(
/* In */ const CEE_handle_def *timer_handle
);
/*
* !CEE_TIMER_SET_IDENTITY
*
* "CEE_TIMER_SET_IDENTITY" is used to associate
* an application defined string with a timer
* to improve diagnostics and manageability.
* Timers initially have the null string as their
* identity. The identity string can be accessed
* by CEE_MGMT clients.
*
* <object_handle> is the handle of the timer
* whose identity is to be set.
*
* <identity> application defined string to
* be attached to the timer.
*
*/
extern CEE_status
CEE_TIMER_SET_IDENTITY(
/* In */ const CEE_handle_def *timer_handle,
/* In */ const char *identity
);
/*
* !CEE_TMP_ALLOCATE
*
* "CEE_TMP_ALLOCATE" temporarily allocates memory. The CEE automatically de-allocates
* this memory when it is no longer needed.
*
* You usually use "CEE_TMP_ALLOCATE" to allocate memory for output parameters with
* unbounded types in operation implementations.
*
* Although intended for unbounded parameters, "CEE_TMP_ALLOCATE" can be used to
* allocate memory for any purpose that requires automatic de-allocation.
*
* Use "CEE_TMP_DEALLOCATE" to free allocated memory before it is automatically
* deallocated.
*
* <handle> The call to which the CEE associates the allocated memory.
*
* <len> The number of bytes to allocate.
*
* <ptr> The address of the allocated memory.
*
* <return-value> CEE_SUCCESS if the operation succeeds, otherwise
* the appropriate CEE status constant.
*
*/
extern CEE_status
CEE_TMP_ALLOCATE(
/* In */ const CEE_handle_def *call_id,
/* In */ long len,
/* Out */ void **ptr
);
/*
* !CEE_TMP_DEALLOCATE
*
* "CEE_TMP_DEALLOCATE" de-allocates temporary memory.
*
* CEE automatically de-allocates memory allocated with "CEE_TMP_ALLOCATE" when it is
* no longer needed. Use "CEE_TMP_DEALLOCATE" when you want to prematurely de-allocate
* this memory.
*
* Allocate temporary memory using "CEE_TMP_ALLOCATE".
*
* <ptr> The address of the memory to be de-allocated.
*
*/
extern CEE_status
CEE_TMP_DEALLOCATE(
/* In */ void *ptr
);
/*
* !CEE_TMP_RESIZE
*
* "CEE_TMP_RESIZE" changes the size of temporarily-allocated memory.
*
* Allocate temporary memory using "CEE_TMP_ALLOCATE".
*
* <newlen> The number of bytes to which to resize the memory.
*
* <ptr> The address of the reallocated memory. The address may change during
* the resize operation.
*
*/
extern CEE_status
CEE_TMP_RESIZE(
/* In */ long newlen,
/* InOut */ void **ptr
);
/*
* !CEE_UNIX_IO_NOTIFY
*
* "CEE_UNIX_IO_NOTIFY" registers a function that the CEE calls when the specified file
* descriptor becomes ready for I/O.
*
* The notification routine is not persistent; it is only up-called once. If you want
* to be notified when the same event happens again on the same file descriptor, you
* must call "CEE_UNIX_IO_NOTIFY" again. Alternatively, you can use
* "CEE_UNIX_IO_REGISTER" for persistent notification.
*
* To cancel a call to "CEE_UNIX_IO_NOTIFY", use "CEE_UNIX_IO_DEREGISTER", or call
* "CEE_UNIX_IO_NOTIFY" with the same filedes and event and with "notification_routine"
* set to NULL.
*
* This function is UNIX-specific.
*
* <fildes> The monitored file descriptor.
*
* <event> The event that triggers the call to "notification_routine".
* "event" must be set to one of the following constants:
* CEE_UNIX_NOTIFY_READ - "fildes" is ready for reading.
* CEE_UNIX_NOTIFY_WRITE - "fildes" is ready for writing.
* CEE_UNIX_NOTIFY_EXCEPTION - an exception is pending on "fildes".
*
* <notification_routine> The routine called by the CEE calls when "fildes" enters the
* state specified by "event".
*
* <io_tag> An arbitrary value. This value is passed to
* "notification_routine". This provides a mechanism to pass
* context information to "notification_routine".
*
*/
extern CEE_status
CEE_UNIX_IO_NOTIFY(
/* In */ int fildes,
/* In */ long event,
/* In */ CEE_UNIX_io_notification_ptr notification_routine,
/* In */ CEE_tag_def io_tag
);
/*
* !CEE_UNIX_IO_REGISTER
*
* "CEE_UNIX_IO_REGISTER" registers a function that is up-called when a specified
* file descriptor becomes ready for I/O.
*
* The notification routine is persistent; it is up-called whenever the specified
* event occurs to filedes.
*
* To cancel a call to "CEE_UNIX_IO_REGISTER", call "CEE_UNIX_IO_DEREGISTER", or call
* "CEE_UNIX_IO_NOTIFY" with the same filedes and event and with
* "notification_routine" set to NULL.
*
* This function is UNIX-specific.
*
* <fildes> The monitored file descriptor.
*
* <event> The event that triggers the call to "notification_routine".
* "event" must be set to one of the following constants:
* CEE_UNIX_NOTIFY_READ - "fildes" is ready for reading.
* CEE_UNIX_NOTIFY_WRITE - "fildes" is ready for writing.
* CEE_UNIX_NOTIFY_EXCEPTION - an exception is pending on "fildes".
*
* <notification_routine> The routine called when "fildes" enters the condition
* specified by event.
*
* <io_tag> An arbitrary value. This value is passed to
* "notification_routine". This provides a mechanism to pass
* context information to "notification_routine".
*
*/
extern CEE_status
CEE_UNIX_IO_REGISTER(
/* In */ int fildes,
/* In */ long event,
/* In */ CEE_UNIX_io_notification_ptr notification_routine,
/* In */ CEE_tag_def io_tag
);
/*
* !CEE_UNIX_IO_DEREGISTER
*
* "CEE_UNIX_IO_DEREGISTER" de-registers the notification routine for events occurring
* on a file descriptor.
*
* Notification routines for events on file descriptors are registered with
* "CEE_UNIX_IO_REGISTER" or "CEE_UNIX_IO_NOTIFY".
*
* This function is UNIX-specific.
*
* <fildes> The monitored file descriptor.
*
* <event> The event that triggers the call to "notification_routine".
* "event" must be set to one of the following constants:
* CEE_UNIX_NOTIFY_READ - "fildes" is ready for reading.
* CEE_UNIX_NOTIFY_WRITE - "fildes" is ready for writing.
* CEE_UNIX_NOTIFY_EXCEPTION - an exception is pending on "fildes".
*
*/
extern CEE_status
CEE_UNIX_IO_DEREGISTER(
/* In */ int fildes,
/* In */ long event
);
/*
* !CEE_VMS_ASYNCH_UPCALL_DISPATCH
*
* This function is VMS-specific.
*
* "CEE_VMS_ASYNCH_UPCALL_DISPATCH" upcalls a function previously specified in
* "CEE_VMS_ASYNCH_UPCALL_REGISTER". The dispatch function may be called
* asynchronously and is the only safe way to execute CEE sends and receives
* from AST level. Note that CEE sends and receives executed within the
* registered function should be asynchronous.
*
* <handle> A handle previously returned by
* "CEE_VMS_ASYNCH_UPCALL_REGISTER"
*
*/
extern CEE_status
CEE_VMS_ASYNCH_UPCALL_DISPATCH(
/* In */ const CEE_handle_def *handle
);
/*
* !CEE_VMS_ASYNCH_UPCALL_DEREGISTER
*
* This function is VMS-specific.
*
* "CEE_VMS_ASYNCH_UPCALL_DEREGISTER" cancels the registration of an
* asynchrounous upcall routine.
*
* <handle> A handle previously returned by
* "CEE_VMS_ASYNCH_UPCALL_REGISTER"
*
*/
extern CEE_status
CEE_VMS_ASYNCH_UPCALL_DEREGISTER(
/* In Out */ CEE_handle_def *handle
);
/*
* !CEE_VMS_ASYNCH_UPCALL_REGISTER
*
* This function is VMS-specific.
*
* "CEE_VMS_ASYNCH_UPCALL_REGISTER" registers a function to be up-called by
* "CEE_VMS_ASYNCH_UPCALL_DISPATCH".
*
* To registration may be canceled by calling "CEE_VMS_ASYNCH_UPCALL_DEREGISTER".
*
*
* <upcall> The routine to be queued for upcall in
* the CEE following a call to
* "CEE_VMS_ASYNCH_UPCALL_DISPATCH".
*
* <tag> Value to be supplied to the upcall routine.
*
* <handle> Handle by which the registration may
* be referenced.
*
*/
extern CEE_status
CEE_VMS_ASYNCH_UPCALL_REGISTER(
/* In */ CEE_VMS_asynch_upcall_ptr upcall,
/* In */ CEE_tag_def tag,
/* Out */ CEE_handle_def *handle
);
/*
* !CEE_TCP_SITE_ID_GET
*
* "CEE_TCP_SITE_ID_GET" returns the IP address that this capsule would use as its
* local address if it were to use the TCP transport (as client and/or server).
* If a TCP stack is not available to this capsule, an empty string is returned.
*
*/
extern char *
CEE_TCP_SITE_ID_GET(void);
/*
* !CEE_TI_SITE_ID_GET
*
* "CEE_TI_SITE_ID_GET" returns the Titanium site ID that this capsule would use
* as its own site ID if it were to use the Titanium transport (as client
* and/or server). If the capsule is not configured to use Titanium, an empty
* string is returned.
*
*/
extern char *
CEE_TI_SITE_ID_GET(void);
/*
* !CEE_VERSION
*
* "CEE_VERSION" returns the current version of the CEE.
*
* Version strings are ordered. You can use "strcmp" to determine whether one CEE
* version is newer than another.
*
* <=version> The current version of CEE.
*
*/
extern
char *
CEE_VERSION(void);
#ifdef __cplusplus
}
#endif
#endif