OuDiagnostic Tool idl-File

//===========================================================================
// Copyright (c) 1999 by Object Engineering GmbH, Uitikon/Zuerich, Switz.
//---------------------------------------------------------------------------
// Author : Andres Koch
// Version : 2.0
// Status : AT WORK (NOT RELEASED)
// Prog. Name : Diagnostik Facility
// Modul Name : oudiag.idl
//---------------------------------------------------------------------------
// Kunde : internal Projekt # : 69712
// OS : UNIX / AIX / Language : C++
// ORB : Orbix 2.0 Language : CORBA-IDL
// Hardware : IBM RS6000
//---------------------------------------------------------------------------
// First Version: 15.11.96 ako Idea for the Service
// : 17.02.97 Th. Hoeltschi/D.Tiemann first Impl. Tool
// Last Update : 28.06.97 ako Extention of Interface for realisation
// : 18.06.99 ako Extention for additional operations
// : 09.07.99 ako Added getLoad operation
//
//---------------------------------------------------------------------------
// Function : CORBA Interface for Logging & Trace Service
// Syntax : idl -B log.idl
//===========================================================================
#ifndef OUDIAG_IDL
#define OUDIAG_IDL 1
module OUDIAG
{
  typedef short RetCode; // Return Code
  const RetCode OK = 0; // Operation successful
  const RetCode NOTOK = -1; // Operation failed

  enum LaunchType
  {
    Manual, // do diagnostic manually
    Automatic // do diagnostik automatically
  };

  struct DiagEntry
  {
    short nDiagNr; // Number of diagnostic entry
    string szName; // Name of dignostic entry
    string szView; // Presentation of diagnostic result
    LaunchType nLaunch; // How diagnostic will be executed
  };

  typedef sequence DiagList;
  typedef sequence ArgList; // NEW see doDiagnostic
  typedef sequence ResultList; // NEW see doDiagnostic

  enum StatusType
  {
    Stopped, // Service is running idle
    Running, // Service is running
    Normal, // Service is working
    Overload, // Service is working hard
    Critical // Something is wrong with Service
  };

  interface Diagnostic
  {
    RetCode getStatus
    (
      out StatusType pStatus
    );

    RetCode getLoad
    (
      out short pLoad // Load in %
    );

    RetCode getVersion
    (
      out ResultList pVersion
    );

    RetCode setDiagLevel
    (
      in short pLevel
    );

    RetCode getDiagnosticList
    (
      out DiagList pList // List of all implemented diagnostics
    );

    RetCode doDiagnostic
    (
      in short pEntry, // Entry, which should be executed
      in ArgList pArgs, // Arguments used
      out ResultList pResult // Results list of dignostic
    );
  };
};
#endif