00001 /** 00002 Licensed to the Apache Software Foundation (ASF) under one 00003 or more contributor license agreements. See the NOTICE file 00004 distributed with this work for additional information 00005 regarding copyright ownership. The ASF licenses this file 00006 to you under the Apache License, Version 2.0 (the 00007 "License"); you may not use this file except in compliance 00008 with the License. You may obtain a copy of the License at 00009 00010 http://www.apache.org/licenses/LICENSE-2.0 00011 00012 Unless required by applicable law or agreed to in writing, software 00013 distributed under the License is distributed on an "AS IS" BASIS, 00014 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 See the License for the specific language governing permissions and 00016 limitations under the License. 00017 */ 00018 00019 /** 00020 * @file ClientRequest.h 00021 */ 00022 00023 #pragma once 00024 #ifndef ATSCPPAPI_CLIENTREQUEST_H_ 00025 #define ATSCPPAPI_CLIENTREQUEST_H_ 00026 00027 #include <atscppapi/Request.h> 00028 00029 namespace atscppapi { 00030 00031 struct ClientRequestState; 00032 00033 /** 00034 * @brief Encapsulates a client request. A client request is different from a 00035 * server request as it has two URLs - the pristine URL sent by the client 00036 * and a remapped URL created by the server. 00037 */ 00038 class ClientRequest : public Request { 00039 public: 00040 /** 00041 * @private 00042 */ 00043 ClientRequest(void *raw_txn, void *hdr_buf, void *hdr_loc); 00044 00045 /** 00046 * Returns the pristine (pre-remap) client request URL 00047 * 00048 * @return Url Reference to non-mutable pristine URL. 00049 */ 00050 const Url &getPristineUrl() const; 00051 00052 ~ClientRequest(); 00053 private: 00054 ClientRequestState *state_; 00055 }; 00056 00057 } 00058 00059 #endif /* ATSCPPAPI_CLIENTREQUEST_H_ */