#ifndef __IRIASSERVER_H
#define __IRIASSERVER_H
#include "IrDATypes.h"
#include "IrStream.h"
class TIrGlue;
class TIrLMP;
class TIASService;
class TIASAttribute;
class TLSAPConn;
class CBufferSegment;
enum IASServerReceiveStates
{
kIASServerReceiveStart,
kIASServerReceiveWaitFinal,
kIASServerWaitingToDie };
#define kIASServerBufferSize 128
#define kIASMaxClassOrAttrStrLen 60
class TIASServer : public TIrStream
{
OSDeclareDefaultStructors(TIASServer);
public:
static TIASServer * tIASServer(TIrGlue *irda, TIASService* nameService);
void free(void);
void ListenStart();
private:
void NextState(ULong event);
Boolean Init(TIrGlue *irda, TIASService* nameService);
void GetStart();
void PutStart();
void ParseInput();
TIASAttribute *ParseRequest(UByte& iasReturnCode);
Boolean GotAValidString(UChar* string);
void SendResponse(UByte iasReturnCode, TIASAttribute* attrElement);
UByte fOpCode;
UByte fReceiveState;
TIASService *fNameService;
TLSAPConn *fLSAPConn; TIrEvent *fRequestReply;
CBufferSegment *fGetPutBuffer;
};
#endif // __IRIASSERVER_H