GIOP_Utils.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file     GIOP_Utils.h
00006  *
00007  *  $Id: GIOP_Utils.h 76279 2007-01-03 06:11:06Z cleeland $
00008  *
00009  *   GIOP utility definitions
00010  *
00011  *
00012  *  @author  Chris Cleeland <cleeland@cs.wustl.edu>
00013  *  @author  Carlos O' Ryan <coryan@uci.edu>
00014  */
00015 //=============================================================================
00016 
00017 #ifndef TAO_GIOP_UTILS_H
00018 #define TAO_GIOP_UTILS_H
00019 
00020 #include /**/ "ace/pre.h"
00021 
00022 #include "tao/Object.h"
00023 
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif /* ACE_LACKS_PRAGMA_ONCE */
00027 
00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00029 
00030 /**
00031  * All GIOP messages include a header and message type.  Not
00032  * really a message type, but needed to bring that information
00033  * back somehow.
00034  */
00035 typedef enum GIOP_Messages
00036 {
00037   // = GIOP message types.
00038   TAO_GIOP_REQUEST = 0,                // sent by client.
00039   TAO_GIOP_REPLY = 1,                  // by server.
00040   TAO_GIOP_CANCELREQUEST = 2,          // by client.
00041   TAO_GIOP_LOCATEREQUEST = 3,          // by client.
00042   TAO_GIOP_LOCATEREPLY = 4,
00043   TAO_GIOP_CLOSECONNECTION = 5,        // by both.
00044   TAO_GIOP_MESSAGERROR = 6,            // by both.
00045   TAO_GIOP_FRAGMENT = 7                // by both.
00046 }  TAO_GIOP_Message_Type;
00047 
00048 
00049 typedef enum GIOP_LocateStatusType
00050 {
00051   TAO_GIOP_UNKNOWN_OBJECT,
00052   TAO_GIOP_OBJECT_HERE,
00053   TAO_GIOP_OBJECT_FORWARD,
00054   TAO_GIOP_OBJECT_FORWARD_PERM,      //GIOP1.2
00055   TAO_GIOP_LOC_SYSTEM_EXCEPTION,     // GIOP1.2
00056   TAO_GIOP_LOC_NEEDS_ADDRESSING_MODE //GIOP 1.2
00057 }TAO_GIOP_Locate_Status_Type;
00058 
00059 /**
00060  * @class TAO_GIOP_Locate_Status_Msg
00061  *
00062  * @brief Hold the relevant information for every type of Locate mesg.
00063  *
00064  * This class is there to hold the relevant info for different
00065  * types of locate status messages. As on date we dont know much
00066  * about other mesg types other than OBJECT_FORWARD. This clss can
00067  * be clearly defined as time progresses.
00068  */
00069 class TAO_Export TAO_GIOP_Locate_Status_Msg
00070 {
00071 public:
00072   /// The value will need to be used when the Message type is
00073   /// TAO_GIOP_OBJECT_FORWARD
00074   CORBA::Object_var forward_location_var;
00075 
00076   /// Stype of Locate status message
00077   ///@@ Other mesg types.
00078   TAO_GIOP_Locate_Status_Type status;
00079 };
00080 
00081 
00082 typedef enum GIOP_ReplyStatusType
00083 {
00084   /// Request completed successfully
00085   TAO_GIOP_NO_EXCEPTION,
00086 
00087   /// Request terminated with user exception
00088   TAO_GIOP_USER_EXCEPTION,
00089 
00090   /// Request terminated with system exception
00091   TAO_GIOP_SYSTEM_EXCEPTION,
00092 
00093   /// Reply is a location forward type
00094   TAO_GIOP_LOCATION_FORWARD,
00095 
00096   /// GIOP 1.2, Reply is a location forward perm type..
00097   TAO_GIOP_LOCATION_FORWARD_PERM,
00098 
00099   /// GIOP1.2,
00100   TAO_GIOP_NEEDS_ADDRESSING_MODE
00101 
00102 } TAO_GIOP_Reply_Status_Type;
00103 
00104 TAO_END_VERSIONED_NAMESPACE_DECL
00105 
00106 #include /**/ "ace/post.h"
00107 #endif /*TAO_GIOP_UTILS_H */

Generated on Sun Jan 27 13:07:32 2008 for TAO by doxygen 1.3.6