SIMC - QUICK REFERENCE

Event Functions

DEFINITIONS

  C/C++:
  Ev_ID    Event;
  Pointer  Data;
  double   Time, Delay;
  int      Priority;
  int   ( *Routine)( Data);
  int      ListRoutine( Data);

  C++:
  class    Class : public SimC { /* ... */ };

ROUTINES  

  C/C++:
  long     EvBreak( Event);
  long     EvContinue( Event);
  double   EvClock();
  long     EvClearPriority();
  long     EvClear();
  long     EvKill( Event);
  long     EvList( ListRoutine);
  double   EvSetClock( Time);
  int      EvSetPriority( Routine, Priority);
  Ev_ID    EvSchedule( Routine, Data, Delay);
  void     EvSimulate();

  C++:
  Ev_ID    EvScheduleC( Class, Routine, Data, Delay);

SIMPLIFYING ALTERNATIVES

  Create( E, S)
     E = ( S *) malloc( sizeof( S))     /* C */
     E = new S                          /* C++ */


Process Functions

DEFINITIONS  C/C++:
  Pointer  Data;
  double   Duration
  int   ( *ProcessRoutine)( Data);

ROUTINES  C/C++:
  ProcessBegin;
  ProcessBreak;
  ProcessContinue( Event);
  ProcessWait( Duration);
  ProcessEnd;

Server Routines

DEFINITIONS  C/C++:
  Svr_ID   Server;
  long     Capacity,
           Number,
           Priority;

ROUTINES

  C/C++:
  void     Release(  Number, Server);
  void     RequestP( Number, Server, Priority);
  void     Request( Number, Server);
  Svr_ID   SvrCreate( Capacity);
  long     SvrCapacity( Server);
  long     SvrAvailable( Server);
  long     SvrQueueSize( Server);
  long     SvrUsed( Server);

  C++:
  void     Server.Release(  Number);
  void     Server.RequestP( Number, Priority);
  void     Server.Request( Number);
  Svr_ID   Server( Capacity);
  long     Server.Capacity();
  long     Server.Available();
  long     Server.QueueSize();
  long     Server.Used();


Sets Functions

DEFINITIONS  C/C++:
  Set_ID   Set;
  Pointer  Data,
           Data1,
           Data2;
  long     Index;
  int      RankRoutine( Data1, Data2);
  int      ListRoutine( Data);

ROUTINES

  C/C++:
  Set_ID SetCreate();
  long   SetClear( Set);
  long   SetFind( Set, Data);
  Data   SetGet( Set, Index);
  Data   SetGetFirst( Set);
  Data   SetGetLast( Set);
  long   SetKill( Set);
  long   SetList( Set, ListRoutine);
  long   SetRank( Set, RankRoutine);
  Data   SetRead( Set, Index);
  Data   SetReadFirst( Set);
  Data   SetReadLast( Set);
  Data   SetReadNext( Set);
  long   SetRemove( Set, Data);
  long   SetSave( Set, Data, Index);
  long   SetSaveFirst( Set, Data);
  long   SetSaveLast( Set, Data);
  long   SetSaveRanked( Set, Data, RankRoutine);
  long   SetSize( Set);

  C++:
  long   Set.Clear();
  long   Set.Find( Data);
  Data   Set.Get( Index);
  Data   Set.GetFirst();
  Data   Set.GetLast();
  long   Set.List( ListRoutine);
  long   Set.Rank( RankRoutine);
  Data   Set.Read( Index);
  Data   Set.ReadFirst();
  Data   Set.ReadLast();
  Data   Set.ReadNext();
  long   Set.Remove( Data);
  long   Set.Save( Data, Index);
  long   Set.SaveFirst( Data);
  long   Set.SaveLast( Data);
  long   Set.SaveRanked( Data, RankRoutine);
  long   Set.Size();


MACROS
  ForEach( Data, Set)   for( Data= SetReadFirst( Set); \
                             Data;                     \
                             Data= SetReadNext( Set))

  ForEachC( Data, Cast, Set)              \
    for( Data= ( C *) SetReadFirst( Set); \
         Data;                            \
         Data= ( C *) SetReadNext( Set))



Accumulated Data Collector

DEFINITIONS  C/C++:
  Accum_ID AV;
  double   Value,
           Time;

ROUTINES  

  C/C++:
  Accum_ID AccumCreateT(  Time);
  Accum_ID AccumCreate( void);
  long     AccumT( AV, Value, Time);
  long     Accum( AV, Value);
  long     AccumCount( AV);
  int      AccumInitT( AV, Time);
  int      AccumInit( AV);
  double   AccumMax( AV);
  double   AccumMeanT( AV, Time);
  double   AccumMean( AV);
  double   AccumMin( AV);
  double   AccumStdDevT( AV, Time);
  double   AccumStdDev( AV);

  C++:
  Accum_ID AV( Time);
  Accum_ID AV();
  long     AV.Update( Value, Time);
  long     AV.Update( Value);
           AV = Value;
  long     AV.Count();
  int      AV.InitT( Time);
  int      AV.Init();
  double   AV.Max();
  double   AV.MeanT( Time);
  double   AV.Mean();
  double   AV.Min();
  double   AV.StdDevT( Time);
  double   AV.StdDev();

Tallied Data Collector

DEFINITIONS  C/C++:
  Tally_ID TV;
  double   Data;

ROUTINES

  C/C++:
  Tally_ID TallyCreate();
  long     Tally( TV, Data);
  long     TallyCount( TV);
  int      TallyInit( TV);
  double   TallyMax( TV);
  double   TallyMean( TV);
  double   TallyMin( TV);
  double   TallyStdDev( TV);

  C++:
  Tally_ID TV.Create();
  long     TV.Update( Data);
           TV = Data;
  long     TV.Count();
  int      TV.Init();
  double   TV.Max();
  double   TV.Mean();
  double   TV.Min();
  double   TV.StdDev();

