/*****************************************************************************
* Copyright (c) 1990-2000 Digi International Inc., All Rights Reserved
* 
* This software contains proprietary and confidential information of Digi
* International Inc.  By accepting transfer of this copy, Recipient agrees
* to retain this software in confidence, to prevent disclosure to others,
* and to make no use of this software other than that for which it was
* delivered.  This is an unpublished copyrighted work of Digi International
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
* prohibited.
* 
* Restricted Rights Legend
*
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7031 or
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
* Restricted Rights at 48 CFR 52.227-19, as applicable.
*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
*
*****************************************************************************/


// CircuitsConfig.h: 
//
//////////////////////////////////////////////////////////////////////

#if !defined(CIRCUITSCONFIG_H)
#define CIRCUITSCONFIG_H

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#define T1_TIMESLOTS 24
#define MAX_T1_CIRCUITS T1_TIMESLOTS

struct FW_EXPORTED_CLASS SCircuitsConfig
{
   SCircuitsConfig() { ZeroMemory(&TimeSlotMask[0], sizeof TimeSlotMask); ZeroMemory(&SpeedMask[0], sizeof SpeedMask);}
   ~SCircuitsConfig() {}

   DWORD CircuitMask;
   DWORD CircuitCount;
   DWORD TimeSlotMask[MAX_T1_CIRCUITS];
   DWORD SpeedMask[MAX_T1_CIRCUITS];

   BOOL Get(HKEY const hKey);
   BOOL Set(HKEY const hKey);
   BOOL SetOnly(HKEY const hKey);
   BOOL Remove(HKEY const hKey);
   void MakeSingleCircuit(DWORD const nTimeSlotMask, DWORD const nSpeedMask);
   DWORD GetSingleCircuitMask(void);
   void UpdateCounts(void);
};

#endif // CIRCUITSCONFIG_H
