text: //
  //  Copyright (C) 2004-2011 by Autodesk, Inc.
  //
  //  This library is free software; you can redistribute it and/or
  //  modify it under the terms of version 2.1 of the GNU Lesser
  //  General Public License as published by the Free Software Foundation.
  //
  //  This library 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
  //  Lesser General Public License for more details.
  //
  //  You should have received a copy of the GNU Lesser General Public
  //  License along with this library; if not, write to the Free Software
  //  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  //
  
  #ifndef IMG_SERVICE_HANDLER_H
  #define IMG_SERVICE_HANDLER_H
  
  #include "ServerBaseDllExport.h"
  
  ///////////////////////////////////////////////////////////////////////////////
  /// The IMgServiceHandler class defines the interface for objects that
  /// process operations.
  ///
  class MG_SERVER_BASE_API IMgServiceHandler
  {
  /// Enumerations
  
      public:
          //  the last available process status
          enum MgProcessStatus
          {
              mpsError     =   -1,     //  there was an error
              mpsDone,                 //  finished processing
              mpsClosed,               //  client has closed stream
              mpsOther                 //  not finished for some reason
          };
  
  /// Constructors/Destructor
  
      public:
  
          IMgServiceHandler();
          IMgServiceHandler(MgStreamData* data, const MgOperationPacket& packet);
          virtual ~IMgServiceHandler();
  
  /// Methods
  
      public:
  
          virtual MgProcessStatus ProcessOperation() = 0;
  
  /// Member Variables
  
      protected:
  
          MgStreamData* m_data;
          MgOperationPacket m_packet;
  };
  
  #endif
  