//
//  Copyright © 2004, RESON Inc. All Rights Reserved.
//
//  No part of this file may be reproduced or transmitted in any form or by
//  any means, electronic or mechanical, including photocopy, recording, or
//  information storage or retrieval system, without permission in writing
//  from RESON Inc.
//
//  Filename:   
//
//  Project:    6046
//
//  Author(s):  W. Arcus
//
//  Purpose:    
//
//  Notes:      
//

#if !defined(AFX_7KSOCKET_H__68B9F3FE_7C30_4744_92F2_AB0EE1DF734F__INCLUDED_)
#define AFX_7KSOCKET_H__68B9F3FE_7C30_4744_92F2_AB0EE1DF734F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class C7kSocket 
{
public:

    ///////////////
    // Services.

                            C7kSocket       (   void );
    virtual                ~C7kSocket       (   void );

    // Vitual overrides; pure and otherwise.

    virtual bool            Configure       (   const unsigned short   &runProtocolVersion )    = 0;

    virtual bool            StartServer     (   void )                                          = 0;
    virtual bool            StopServer      (   void )                                          = 0;

    virtual bool            Send            (   void )                                          = 0;
    virtual bool            Receive         (   void )                                          = 0;

    virtual                 operator HANDLE (   void );

    virtual unsigned short  ProtocolVersion (   void ) const;

protected:

    unsigned short          m_unProtocolVersion;
    HANDLE                  m_hDataEvent;

private:

                            C7kSocket       (   const C7kSocket        &rRhs );             // Not implemented thus private.
    C7kSocket &             operator =      (   const C7kSocket        &rRhs );             // Not implemented thus private.

};

#endif // !defined(AFX_7KSOCKET_H__68B9F3FE_7C30_4744_92F2_AB0EE1DF734F__INCLUDED_)

