⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 locator_request_reply.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
/* -*- C++ -*- */// Locator_Request_Reply.h,v 1.8 1998/10/27 04:02:31 irfan Exp// ============================================================================//// = LIBRARY//    none//// = FILENAME//    Locator_Request_Response.h//// = AUTHOR//    Nanbor Wang//// ============================================================================#ifndef ACE_LOCATOR_REQUEST_REPLY_H#define ACE_LOCATOR_REQUEST_REPLY_H#include "URL_Properties.h"class ACE_Svc_Export ACE_URL_Locator_Request  // = TITLE  //     A URL request message formater/wrapper.  //  // = DESCRIPTION  //     This class defines a URL request data.  It is used  //     to transform requests to an object so that we can  //     ship them across network.{public:  ACE_URL_Locator_Request (void);  // Default ctor.  ~ACE_URL_Locator_Request (void);  // Default dtor.  int url_query (const int how,                 const ACE_URL_Property_Seq &pseq,                 const int how_many);  // Query the locator for HTTP with designate properties (none, some,  // or all).  The locator being queried will return a sequence of  // offers with <how_many> offers in it.  This interface allocates  // <offer> so users must deallocate it after use.  int export_offer (const ACE_URL_Offer &offer);  // Export an offer to the locator.  int withdraw_offer (const ACE_WString &offer_id);  // Withdraw an offer.  return 0 if succeed, -1 otherwise.  int describe_offer (const ACE_WString &offer_id);  // Query a specific offer.  int modify_offer (const ACE_WString &offer_id,                    const char *url = 0,                    const ACE_URL_Property_Seq &del = 0,                    const ACE_URL_Property_Seq &modify = 0);  // Modify a previously registered offer.  int modify_offer (const ACE_WString &offer_id,                    const ACE_WString *url = 0,                    const ACE_URL_Property_Seq &del = 0,                    const ACE_URL_Property_Seq &modify = 0);  // Modify a previously registered offer.  size_t encode (void);  // Encode request for network communication.  If succeed,  // returns the size of the buffer, otherwise, return 0.  size_t decode (void *buffer);  // Restore from network data.  Returns size of the buffer  // if succeed, 0 otherwise.  When passing in a buffer,  // caller must take the responsibility to delete the buffer  // afterward, if so needed.  const int how (void) const;  const int how_many (void) const;  const u_int opcode (void) const;  const ACE_URL_Property_Seq *seq (void) const;  const ACE_URL_Property_Seq *del (void) const;  const ACE_URL_Property_Seq *modify (void) const;  const ACE_URL_Offer *offer (void) const;  const ACE_WString &id (void) const;  const ACE_WString &url (void) const;  const char *buffer (void) const;  // A bunch of methods to access internal data.  void dump (void) const;  // Print out this object.protected:  size_t size (void);  // Return the size of the buffer required to encode  // this request.  enum {    VALID_SEQ1 = 0x1,    VALID_SEQ2 = 0X2,    VALID_OFFER = 0X4  };  // These constants used to indicate which pointers are valid.  u_int code_;  // Request type code.  int how_;  // Query method (if code_ == QUERY.)  int how_many_;  // How many offers are we interested in in this query.  int valid_ptr_;  // Bit flag to mark valid pointers within this object.  ACE_URL_Property_Seq *seq1_;  // For query or del in modify_offer.  ACE_URL_Property_Seq *seq2_;  // For modify seq. in modify_offer.  ACE_URL_Offer *offer_;  // Offer to export.  ACE_WString id_;  // Offer ID.  ACE_WString url_;  // URL of this offer.  char *buffer_;  // Buffer to store encoded data.};class ACE_Svc_Export ACE_URL_Locator_Reply  // = TITLE  //     A URL reply message formater/wrapper.  //  // = DESCRIPTION  //     This class defines a URL reply data.  It is used  //     to transform reply messages to an object so that we can  //     ship them across network.{public:  ACE_URL_Locator_Reply (void);  // Default ctor.  ~ACE_URL_Locator_Reply (void);  // Default dtor.  int status_reply (u_int op, int result);  // Setup a reply message for EXPORT, WITHDRAW, or MODIFY operations.  int query_reply (int result, size_t num,                   const ACE_URL_Offer_Seq &offers);  // Setup a reply for QUERY operation.  int describe_reply (int result,                      const ACE_URL_Offer &offer);  // Construct a reply for DESCRIBE operation.  size_t encode (void);  // Encode request for network communication.  If succeed,  // returns the size of the buffer, otherwise, return 0.  size_t decode (void *buffer);  // Restore from network data.  Returns size of the buffer  // if succeed, 0 otherwise.  When passing in a buffer,  // caller must take the responsibility to delete the buffer  // afterward, if so needed.  // Accessor function.  const size_t num_offers (void) const;  const ACE_URL_Offer *offer (void) const;  const ACE_URL_Offer_Seq *offers (void) const;  const u_int opcode (void) const;  const u_int status (void) const;  const char *buffer (void) const ;  void dump (void) const ;  // Print out this object.protected:  size_t size (void);  // Return the size of the buffer required to encode  // this request.  enum {    VALID_OFFER = 0x1,    VALID_OFFERS = 0x2  };  // Valid pointer masks.  u_int code_;  // Holds the original op code.  int status_;  // Holds the result of an operation from the Location Server.  size_t num_offers_;  // Holds the number of valid offers in the offers_ sequence.  int valid_ptr_;  // Flag that marks valid internal pointers.  ACE_URL_Offer *offer_;  // Holds a single offer.  Used in query offer property.  ACE_URL_Offer_Seq *offers_;  // Holds the replying offer sequence from a Locator.  char *buffer_;  // Buffer to store encoded data.};#if defined (__ACE_INLINE__)#include "Locator_Request_Reply.i"#endif /* __ACE_INLINE__ */#endif /* ACE_LOCATOR_REQUEST_REPLY_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -