/usr/include/ACEXML/common/URL_Addr.h is in libacexml-dev 6.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | /* -*- C++ -*- */
/** @file URL_Addr.h
*
* $Id: URL_Addr.h 80826 2008-03-04 14:51:23Z wotte $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Krishnakumar B <kitty@cs.wustl.edu>
*
*/
#ifndef _ACEXML_URL_ADDR_H
#define _ACEXML_URL_ADDR_H
#include /**/ "ace/pre.h"
#include "ACEXML/common/ACEXML_Export.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Default_Constants.h"
#include "ace/INET_Addr.h"
#include "ACEXML/common/XML_Types.h"
#include "ACEXML/common/ACEXML_Export.h"
/**
* @class ACEXML_URL_Addr URL_Addr.h "ACEXML/common/URL_Addr.h"
*
* Defines a URL address family address format.
*/
class ACEXML_Export ACEXML_URL_Addr : public ACE_INET_Addr
{
public:
/// Initialization and termination methods.
ACEXML_URL_Addr (void);
/// Constructor.
ACEXML_URL_Addr (const ACEXML_Char *host_name,
const ACEXML_Char *path_name,
unsigned short port = ACE_DEFAULT_HTTP_PORT);
/// Copy constructor.
ACEXML_URL_Addr (const ACEXML_URL_Addr &addr);
/// Essentially the copy constructor.
int set (const ACEXML_URL_Addr &addr);
/**
* Initializes an <ACEXML_URL_Addr> from the <address>, which can be
* "ip-number:port-number/path-name" (e.g.,
* "www.cs.wustl.edu:1234/~schmidt/" "ip-number:port-number/path-name"
* (e.g., "128.252.166.57:1234/~schmidt"). If there is no ':' in the
* <address> it is assumed to be an ip-number or ip-address number, with
* the port number <ACE_DEFAULT_HTTP_PORT>.
*/
virtual int string_to_addr (const ACEXML_Char* address,
int address_family = AF_UNSPEC);
// Function to shut up Borland C++
#if defined (ACE_USES_WCHAR)
virtual int string_to_addr (const char* addresss,
int address_family = AF_UNSPEC);
#endif
/**
* Transform the current <ACE_INET_Addr> address into string format. If
* <ipaddr_format> is non-0 this produces
* "ip-number:port-number/path-name" (e.g.,
* "128.252.166.57:80/~schmidt/"), whereas if <ipaddr_format> is 0 this
* produces "ip-name:port-number" (e.g.,
* "www.cs.wustl.edu:80/~schmidt/"). Returns -1 if the <size> of the
* <buffer> is too small, else 0.
*/
virtual int addr_to_string (ACEXML_Char *s,
size_t size,
int ipaddr_format = 1) const;
/**
* Transform the current <ACE_INET_Addr> address into string format. If
* <ipaddr_format> is non-0 this produces
* "ip-number:port-number/path-name" (e.g.,
* "128.252.166.57:80/~schmidt/"), whereas if <ipaddr_format> is 0 this
* produces "ip-name:port-number" (e.g.,
* "www.cs.wustl.edu:80/~schmidt/"). Uses dynamic memory, which is
* allocated on demand and deallocated when the object is destroyed.
* Returns -1 if dynamic memory fails, else 0.
*/
virtual const ACEXML_Char *addr_to_string (int ipaddr_format = 1);
/// Assignment operator.
void operator= (const ACEXML_URL_Addr &addr);
/// Destructor.
~ACEXML_URL_Addr (void);
/**
* Compare two addresses for equality. The addresses are considered
* equal if they contain the same IP address, port number, and path name.
*/
bool operator == (const ACEXML_URL_Addr &SAP) const;
/// Compare two addresses for inequality.
bool operator != (const ACEXML_URL_Addr &SAP) const;
/// Computes and returns hash value.
virtual u_long hash (void) const;
/// Return the path name.
const ACEXML_Char *get_path_name (void) const;
/// Commit suicide.
int destroy (void);
private:
/// Calculate the maximum length of the address string
size_t calculate_length (int ipaddr_format) const;
/// Our path name.
ACEXML_Char *path_name_;
/// The dynamically created address string that's used for the
/// <addr_to_string> method.
ACEXML_Char *addr_string_;
/// Current length of the <addr_string_>
size_t addr_string_len_;
};
#if defined (__ACEXML_INLINE__)
# include "ACEXML/common/URL_Addr.inl"
#endif /* __ACEXML_INLINE__ */
#include /**/ "ace/post.h"
#endif /* _ACEXML_URL_ADDR_H */
|