// SysName.h
//
// Copyright 1999 Diehl Graphsoft, Inc.
// All Rights Reserved.
//
// Definitions needed for SysName.
//
// Started by David Bowman on 2/25/99.
//
// SourceSafe information for this version:
//    $Revision: 5 $
//    $Date: 6/28/00 8:00a $
//    $Author: Mfarnan $

#ifndef _SYSNAME_H_
#define _SYSNAME_H_ 1

#pragma once

#include "GSString.h"

/////////////////////////////////////////////////////////////////////////////////////////

// You might think we could allow LONG_MAX (about 2 billion SysNames).  But
// the RefListType node will have 4 bytes for every SysName, and we were
// concerned that it would be a problem if its size was greater than a
// long, since most of our handle functions have long parameters, assuming
// the size of the handle will not be greater than a long.  We allow more
// total SysNames than named SysNames (has a string, not just an id), because
// the RefNameNode has about 68 bytes for every named SysName.  If you divide
// 2 billion by 100, you get 20 million, but we decided to be a little
// conservative and set a limit of 10 million named SysNames.  [BF 6/16/00]


const Sint32 refNumberListMax	= 100000000L;
const Sint32 refNameListMax		= 10000000L;

typedef PStr63 RefName;

typedef Sint32 RefNumber;

typedef RefNumber ClassRefNumber;
typedef RefNumber HatchRefNumber;
typedef RefNumber MaterialRefNumber;
typedef RefNumber FillRefNumber;

/////////////////////////////////////////////////////////////////////////////////////////


#endif // _SYSNAME_H_
