summaryrefslogtreecommitdiff
path: root/ace/Token_Request_Reply.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Token_Request_Reply.h')
-rw-r--r--ace/Token_Request_Reply.h266
1 files changed, 0 insertions, 266 deletions
diff --git a/ace/Token_Request_Reply.h b/ace/Token_Request_Reply.h
deleted file mode 100644
index 2f2794e605f..00000000000
--- a/ace/Token_Request_Reply.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Token_Request_Reply.h
- *
- * $Id$
- *
- * Define the format used to exchange messages between the
- * ACE_Token Server and its clients.
- *
- *
- * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
- * @author Tim Harrison (harrison@cs.wustl.edu)
- */
-//=============================================================================
-
-
-#ifndef ACE_TOKEN_REQUEST_REPLY_H
-#define ACE_TOKEN_REQUEST_REPLY_H
-#include /**/ "ace/pre.h"
-
-#include "ace/Local_Tokens.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-// Specifies the size of the fixed length portion of
-// the Transfer structure in ACE_Token_Request
-#define ACE_TOKEN_REQUEST_HEADER_SIZE 40
-
-/**
- * @class ACE_Token_Request
- *
- * @brief Message format for delivering requests to the ACE_Token Server.
- *
- * This class is implemented to minimize data copying.
- * In particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Token_Request
-{
-public:
- /// Operation types.
- enum OPERATION
- {
- /// Acquire the token.
- ACQUIRE,
- /// Release the token.
- RELEASE,
- /// Renew the token.
- RENEW,
- /// Remove the token.
- REMOVE,
- // Try to acquire the token.
- TRY_ACQUIRE
- };
-
- /// Default constructor.
- ACE_Token_Request (void);
-
- /**
- * token_type - MUTEX, RWLOCK
- * proxy_type - MUTEX, RLOCK, WLOCK (acquires mean different things)
- * operation - method
- * token_name
- * client_id
- * options - we check USE_TIMEOUT and use the arg.
- */
- ACE_Token_Request (int token_type,
- int proxy_type,
- ACE_UINT32 operation,
- const ACE_TCHAR token_name[],
- const ACE_TCHAR client_id[],
- const ACE_Synch_Options &options);
-
- /// Get the length of the encoded/decoded message.
- ACE_UINT32 length (void) const;
-
- /// Set the length of the encoded/decoded message.
- void length (ACE_UINT32);
-
- /// Get the type of proxy
- int proxy_type (void) const;
-
- /// Set the type of proxy
- void proxy_type (int proxy_type);
-
- /// Get the type of token
- int token_type (void) const;
-
- /// Set the type of token
- void token_type (int token_type);
-
- /// Get the type of the operation.
- ACE_UINT32 operation_type (void) const;
-
- /// Set the type of the operation.
- void operation_type (ACE_UINT32);
-
- /// Get the requeue position. These should be used when renew
- /// is the operation type.
- ACE_UINT32 requeue_position (void) const;
-
- /// Set the requeue position. These should be used when renew
- /// is the operation type.
- void requeue_position (ACE_UINT32);
-
- /// Get notify. These should be used when acquire is the operation type.
- ACE_UINT32 notify (void) const;
-
- /// Set notify. These should be used when acquire is the operation type.
- void notify (ACE_UINT32);
-
- // = Set/get the timeout.
- ACE_Synch_Options &options (void) const;
- void options (const ACE_Synch_Options &options);
-
- // = Set/get the name of the token and the client id. The set
- // method is combined to make it easier on us. We're copying the
- // names as a contiguous buffer.
- ACE_TCHAR *token_name (void) const;
- ACE_TCHAR *client_id (void) const;
- void token_name (const ACE_TCHAR *token_name, const ACE_TCHAR *client_id);
-
- /// Encode the message before transmission.
- int encode (void *&);
-
- /// Decode message after reception. This must be called to set the
- /// internal options.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 5 fields in the <Transfer> struct are transmitted to the server.
- // The remaining 2 fields are not tranferred -- they are used only on
- // the server-side to simplify lookups.
-
- struct Transfer
- {
- /// Length of entire request.
- ACE_UINT32 length_;
-
- /// Type of the request (i.e., MUTEX, RLOCK, WLOCK...
- ACE_UINT32 token_type_;
-
- /// Type of the request (i.e., MUTEX, RLOCK, WLOCK...
- ACE_UINT32 proxy_type_;
-
- /// Type of the request (i.e., <ACQUIRE>, <RELEASE>, <RENEW>, and <REMOVE>).
- ACE_UINT32 operation_type_;
-
- /// this only makes sense when operation type is renew
- ACE_UINT32 requeue_position_;
-
- /// this only makes sense when operation type is renew
- ACE_UINT32 notify_;
-
- // = ACE_Synch_Options stuff
-
- /// Indicates if we should block forever. If 1, then <secTimeout_>
- /// and <usecTimeout_> indicates how long we should wait. If 0,
- /// then we block forever.
- ACE_UINT32 use_timeout_;
-
- /// Max seconds willing to wait for token if not blocking forever.
- ACE_UINT32 sec_;
-
- /// Max micro seconds to wait for token if not blocking forever.
- ACE_UINT32 usec_;
-
- /// value returned in <Token_Reply::arg>;
- ACE_UINT32 arg_;
-
- /// The data portion contains the <tokenName_> including a 0 terminator,
- /// a ':', then the <clientId> including a 0 terminator
- ACE_TCHAR data_[ACE_MAXTOKENNAMELEN + ACE_MAXCLIENTIDLEN + 3];
- } transfer_;
-
- /// Pointer to the beginning of the token name in this->data_.
- ACE_TCHAR *token_name_;
-
- /// Pointer to the beginning of the client id in this->data_;
- ACE_TCHAR *client_id_;
-
- /// Holds arg, sec, usec, etc.
- ACE_Synch_Options options_;
-};
-
-/**
- * @class ACE_Token_Reply
- *
- * @brief Message format for delivering replies from the ACE_Token Server.
- *
- * This class is implemented to minimize data copying.
- * In particular, all marshaling is done in situ...
- */
-class ACE_Export ACE_Token_Reply
-{
-public:
- /// Default constructor.
- ACE_Token_Reply (void);
-
- /// Get the length of the encoded/decoded message.
- ACE_UINT32 length (void) const;
-
- /// Set the length of the encoded/decoded message.
- void length (ACE_UINT32);
-
- /// Get the errno of a reply.
- ACE_UINT32 errnum (void) const;
-
- /// Set the errno of a reply.
- void errnum (ACE_UINT32);
-
- /// Get the arg of a reply.
- ACE_UINT32 arg (void) const;
-
- /// Set the arg of a reply.
- void arg (ACE_UINT32);
-
- /// Encode the message before transfer.
- int encode (void *&);
-
- /// Decode a message after reception.
- int decode (void);
-
- /// Print out the values of the message for debugging purposes.
- void dump (void) const;
-
-private:
- // = The 2 fields in the <Transfer> struct are transmitted to the server.
-
- struct Transfer
- {
- /// Length of entire reply.
- ACE_UINT32 length_;
-
- /// Indicates why error occurred if <this->type_> == <FAILURE>.
- /// Typical reasons include:
- /// <EWOULDBLOCK> (if client requested a non-blocking check for the token).
- /// <ETIME> (if the client timed out after waiting for the token).
- /// <ENOLCK> (if the token lock was removed out from underneath a waiter).
- /// <EACCES> (attempt to renew a token that isn't owned by the client).
- ACE_UINT32 errno_;
-
- /// magic cookie
- ACE_UINT32 arg_;
-
- } transfer_;
-};
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
-#if defined (__ACE_INLINE__)
-#include "ace/Token_Request_Reply.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_TOKEN_REQUEST_REPLY_H */