00001 /** @file 00002 00003 A brief file description 00004 00005 @section license License 00006 00007 Licensed to the Apache Software Foundation (ASF) under one 00008 or more contributor license agreements. See the NOTICE file 00009 distributed with this work for additional information 00010 regarding copyright ownership. The ASF licenses this file 00011 to you under the Apache License, Version 2.0 (the 00012 "License"); you may not use this file except in compliance 00013 with the License. You may obtain a copy of the License at 00014 00015 http://www.apache.org/licenses/LICENSE-2.0 00016 00017 Unless required by applicable law or agreed to in writing, software 00018 distributed under the License is distributed on an "AS IS" BASIS, 00019 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00020 See the License for the specific language governing permissions and 00021 limitations under the License. 00022 */ 00023 00024 00025 00026 #ifndef LOG_ACCESS_ICP_H 00027 #define LOG_ACCESS_ICP_H 00028 00029 #include "LogAccess.h" 00030 00031 class ICPlog; 00032 00033 /*------------------------------------------------------------------------- 00034 LogAccessICP 00035 00036 This class extends the logging system interface as implemented by the 00037 ICPlog class. 00038 -------------------------------------------------------------------------*/ 00039 00040 class LogAccessICP:public LogAccess 00041 { 00042 public: 00043 LogAccessICP(ICPlog * icp_log); 00044 virtual ~ LogAccessICP(); 00045 00046 LogEntryType entry_type() 00047 { 00048 return LOG_ENTRY_ICP; 00049 } 00050 00051 // 00052 // client -> proxy fields 00053 // 00054 virtual int marshal_client_host_ip(char *); // STR 00055 virtual int marshal_client_host_port(char *); // INT 00056 virtual int marshal_client_auth_user_name(char *); // STR 00057 virtual int marshal_client_req_text(char *); // STR 00058 virtual int marshal_client_req_http_method(char *); // INT 00059 virtual int marshal_client_req_url(char *); // STR 00060 virtual int marshal_client_req_url_canon(char *); // STR 00061 00062 // 00063 // proxy -> client fields 00064 // 00065 virtual int marshal_proxy_resp_content_type(char *); // STR 00066 virtual int marshal_proxy_resp_squid_len(char *); // INT 00067 virtual int marshal_proxy_resp_content_len(char *); // INT 00068 virtual int marshal_proxy_resp_status_code(char *); // INT 00069 virtual int marshal_cache_result_code(char *); // INT 00070 00071 // 00072 // proxy -> server fields 00073 // 00074 virtual int marshal_proxy_hierarchy_route(char *); // INT 00075 00076 // 00077 // server -> proxy fields 00078 // 00079 virtual int marshal_server_host_name(char *); // STR 00080 00081 // 00082 // other fields 00083 // 00084 virtual int marshal_transfer_time_ms(char *); // INT 00085 virtual int marshal_transfer_time_s(char *); // INT 00086 00087 private: 00088 ICPlog * m_icp_log; 00089 00090 // -- member functions that are not allowed -- 00091 LogAccessICP(const LogAccessICP & rhs); 00092 LogAccessICP & operator=(LogAccessICP & rhs); 00093 }; 00094 00095 #endif