CnC_Red_Alert/CODE/IPXADDR.H

108 lines
4.7 KiB
C++

/*
** Command & Conquer Red Alert(tm)
** Copyright 2025 Electronic Arts Inc.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* $Header: /CounterStrike/IPXADDR.H 1 3/03/97 10:24a Joe_bostic $ */
/***************************************************************************
** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
***************************************************************************
* *
* Project Name : Command & Conquer *
* *
* File Name : IPXADDR.H *
* *
* Programmer : Bill Randolph *
* *
* Start Date : December 19, 1994 *
* *
* Last Update : December 19, 1994 [BR] *
* *
* This class is useful for any IPX-related code. It's just a utility *
* to help manage those annoying IPX address fields. This class lets you *
* compare addresses, copy addresses to & from the IPX header, etc. *
* *
* The class has no virtual functions, so you can treat this class just *
* like a data structure; it can be loaded & saved, and even transmitted *
* across the net. *
* *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#ifndef IPXADDR_H
#define IPXADDR_H
#include "ipx.h" // for NetNumType & NetNodeType
/*
***************************** Class Declaration *****************************
*/
class IPXAddressClass
{
/*
---------------------------- Public Interface ----------------------------
*/
public:
/*.....................................................................
Constructors:
.....................................................................*/
IPXAddressClass(void);
IPXAddressClass(NetNumType net, NetNodeType node);
IPXAddressClass(IPXHeaderType *header);
/*.....................................................................
Set the address from explicit variables, or from the SOURCE values
in an IPX packet header.
.....................................................................*/
void Set_Address(NetNumType net, NetNodeType node);
void Set_Address(IPXHeaderType *header);
/*.....................................................................
Get the address values explicitly, or copy them into the DESTINATION
values in an IPX packet header.
.....................................................................*/
void Get_Address (NetNumType net, NetNodeType node);
void Get_Address(IPXHeaderType *header);
/*.....................................................................
Tells if this address is a broadcast address
.....................................................................*/
int Is_Broadcast(void);
/*.....................................................................
Overloaded operators:
.....................................................................*/
int operator == (IPXAddressClass & addr);
int operator != (IPXAddressClass & addr);
int operator > (IPXAddressClass &addr);
int operator < (IPXAddressClass &addr);
int operator >= (IPXAddressClass &addr);
int operator <= (IPXAddressClass &addr);
/*
-------------------------- Protected Interface ---------------------------
*/
protected:
/*
--------------------------- Private Interface ----------------------------
*/
private:
NetNumType NetworkNumber;
NetNodeType NodeAddress;
};
#endif
/**************************** end of ipxaddr.h *****************************/