/*
 *    @(#)25 1.1 9/28/93 11:45:42 [10/14/94] (c)IBM Corp. 1992
 */

// This file was generated by the SOM Compiler.
// FileName: fm.id2.
// Generated using:
//     SOM Precompiler spc: 6.9
//     SOM Emitter emitidl.dll: 6.8

//  This class is adapted from the book
//    Class Construction in C and C++, Object Oriented Fundamentals
//    by Roger Sessions, Copyright (c) 1992 Prentice Hall.
//  Reprinted with permission.

#ifndef fm_idl
#define fm_idl

#include <somobj.idl>

interface fileMgr : SOMObject
{
  const short BUFF_SIZE = 20;
  void fmInit(in string newFile);
  
  // Initialize and open a new file.

  long fmGetChar();
  
  // Get the next character in the file.

  long fmPeekChar(in long offset);
  
  // Peek ahead in the file.


#ifdef __PRIVATE__

  long fmSize();
  long fmIncr(in long oldNum);
  long fmAdd(in long oldNum, 
            in long addNum);

#endif


#ifdef __SOMIDL__
  implementation {

    releaseorder: fmInit,fmGetChar,fmPeekChar,fmSize,fmIncr,fmAdd;

    //# Class Modifiers
    callstyle = oidl;
    local; 
    filestem = fm;



    //# Internal Instance Variables
    FILE *funit;                  
    long buffer[fileMgr::BUFF_SIZE];        
    long putSide;                  
    long getSide;                  

    //# Method Modifiers
    somInit: override;
    somUninit: override;
    somDumpSelfInt: override;

    //# Data Modifiers
    funit: ;
    buffer: ;
    putSide: ;
    getSide: ;

#ifdef __PRIVATE__

    //# Data Modifiers

#endif

  };
#endif /* __SOMIDL__ */
};

#endif  /* fm_idl */
