/*
 * Context.defs
 *
 * Mach Interface specifications for Credentials Cache IPC
 *
 */
 
#include "CCache.types.defs"
#include <mach/mach_types.defs>

import "CCache.MachIPC.h";

routine		ContextIPC_GetChangeTime (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                    out	outTime			: CCITime;
                    out	outResult		: CCIResult);

routine		ContextIPC_OpenCCache (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                        inName			: CCacheInName;
                    out	outCCacheID		: CCacheID;
                    out	outResult		: CCIResult);

routine		ContextIPC_OpenDefaultCCache (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                    out	outCCacheID		: CCacheID;
                    out	outResult		: CCIResult);

routine		ContextIPC_GetDefaultCCacheName (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                    out	outCCacheName		: CCacheOutName, dealloc;
                    out	outResult		: CCIResult);
                    
routine		ContextIPC_CreateCCache (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                        inCCacheName		: CCacheInName;
                        inCCacheVersion		: CCIUInt32;
                        inCCachePrincipal	: CCacheInPrincipal;
                    out	outCCacheID		: CCacheID;
                    out	outResult		: CCIResult);

routine		ContextIPC_CreateDefaultCCache (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                        inCCacheVersion		: CCIUInt32;
                        inCCachePrincipal	: CCacheInPrincipal;
                    out	outCCacheID		: CCacheID;
                    out	outResult		: CCIResult);

routine		ContextIPC_CreateNewCCache (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                        inCCacheVersion		: CCIUInt32;
                        inCCachePrincipal	: CCacheInPrincipal;
                    out	outCCacheID		: CCacheID;
                    out	outResult		: CCIResult);

routine		ContextIPC_GetCCacheIDs (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                    out outCCacheIDs		: CCacheIDArray, dealloc;
                    out	outResult		: CCIResult);

routine		ContextIPC_GetGlobalContextID (
                        inServerPort		: mach_port_t;
                    out	outContext		: ContextID;
                    out	outResult		: CCIResult);

routine		ContextIPC_Compare (
                        inServerPort		: mach_port_t;
                        inContext		: ContextID;
                        inCompareTo		: ContextID;
                    out outEqual		: CCIUInt32;
                    out outResult		: CCIResult);