eventsim.h

来自「Sun公司Dream项目」· C头文件 代码 · 共 113 行

H
113
字号
/*
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the "License").  You may not use this file except
 * in compliance with the License.
 *
 * You can obtain a copy of the license at
 * http://www.opensource.org/licenses/cddl1.php
 * See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * HEADER in each file and include the License file at
 * http://www.opensource.org/licenses/cddl1.php.  If 
 * applicable, add the following below this CDDL HEADER, 
 * with the fields enclosed by brackets "[]" replaced 
 * with your own identifying information: 
 * Portions Copyright [yyyy]
 * [name of copyright owner]
 */ 

/*
 * $(@)EventSim.h $Revision: 1.1.1.1 $ $Date: 2006/04/17 22:47:30 $
 * 
 * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
 */
/*
 * Copyright (c) 1997 by Sun Microsystems, Inc.
 */

/*
 * EventSim.h
 * 
 * EventSim provides a discrete event simulation environment.
 */

#ifndef	_COBJS_EVENTSIM_H
#define	_COBJS_EVENTSIM_H

#pragma ident "@(#)EventSim.h 1.2	99/01/28 SMI"

/***********************************************************************
 * Includes
 ***********************************************************************/

#include <limits.h>
#include <stddef.h>

#include "cobjs/Foreign.h"
#include "cobjs/Types.h"
#include "cobjs/Time.h"

_FOREIGN_START

/*************************************************************************
 * OBJECT EventSim defines
 *************************************************************************/

#define	EVENT_TIME_FOREVER		LLONG_MAX

/***********************************************************************
 * OBJECT EventSim Instance Type
 ***********************************************************************/
typedef struct _EventSim *EventSim;
typedef struct _EventActor *EventActor;

/***********************************************************************
 * OBJECT EventSim Public Types
 ***********************************************************************/

typedef void        (*EventBody) (EventActor ea, void *arg);

/***********************************************************************
 * OBJECT EventSim Class Interface
 ***********************************************************************/
extern EventSim     eventSimNew(void);

/***********************************************************************
 * OBJECT EventSim Instance Interface
 ***********************************************************************/

extern double       eventSimSetRealTimeFrac(EventSim es, double realTimeFrac);

extern Time    eventSimSetStopTime(EventSim es, Time stopTime);
extern Time    eventSimNow(EventSim es);

extern void         eventSimRun(EventSim es);
extern void         eventSimStep(EventSim es);
extern void         eventSimStop(EventSim es);
extern void         eventSimWaitStopped(EventSim es);
extern void         eventSimFree(EventSim es);

extern EventActor
eventActorNew(EventSim es, size_t stackSize,
	      EventBody body, void *bodyArg);

extern void         eventActorFree(EventActor ea);

extern Boolean      eventActorShouldRun(EventActor ea);
extern Time    eventActorNow(EventActor ea);

extern Time    eventActorDelay(EventActor ea, Time delayTime);
extern Time    eventActorWait(EventActor ea);
extern Time    eventActorTimedWait(EventActor ea, Time maxWaitTime);

extern void         eventActorStopSim(EventActor ea);

extern void         eventActorSignal(EventActor ea);

_FOREIGN_END

#endif					   /* _COBJS_EVENTSIM_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?