ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/c++/socket++-1.10/sockinet.h
Revision: 1.2
Committed: Mon Jun 10 14:10:44 2002 UTC (22 years, 3 months ago) by tdb
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Error occurred while calculating annotation data.
Log Message:
Tidy up of files. These are all old things that are not only no longer used
but are also probably useless to anyone other than us. This saves checking
them out all the time, and makes the "cms/source" tree contain only current
stuff. They'll still exist in the attic's though :)

File Contents

# Content
1 // sockinet.h -*- C++ -*- socket library
2 // Copyright (C) 1992,1993,1994 Gnanasekaran Swaminathan <gs4t@virginia.edu>
3 //
4 // Permission is granted to use at your own risk and distribute this software
5 // in source and binary forms provided the above copyright
6 // notice and this paragraph are preserved on all copies.
7 // This software is provided "as is" with no express or implied warranty.
8 //
9 // Version: 17Oct95 1.10
10
11 #ifndef _SOCKINET_H
12 #define _SOCKINET_H
13
14 #include <sockstream.h>
15 #include <netinet/in.h>
16
17 class sockinetaddr: public sockAddr, public sockaddr_in {
18 protected:
19 void setport (const char* sn, const char* pn="tcp");
20 void setaddr (const char* hn);
21 public:
22 ~sockinetaddr () {}
23 sockinetaddr ();
24 sockinetaddr (unsigned long addr, int port_no=0);
25 sockinetaddr (const char* host_name, int port_no=0);
26 sockinetaddr (unsigned long addr,
27 const char* service_name,
28 const char* protocol_name="tcp");
29 sockinetaddr (const char* host_name,
30 const char* service_name,
31 const char* protocol_name="tcp");
32 sockinetaddr (const sockinetaddr& sina);
33 operator void* () const { return (sockaddr_in*)this; }
34
35 int size() const { return sizeof (sockaddr_in); }
36 int family() const { return sin_family; }
37 sockaddr* addr() const {return (sockaddr*)((sockaddr_in*)this); }
38
39 int getport() const;
40 const char* gethostname() const;
41 };
42
43 class sockinetbuf: public sockbuf {
44 protected:
45 sockinetbuf& operator=(const sockbuf& si); // needs to be fixed
46 sockinetbuf& operator=(const sockinetbuf& si); // needs fixing
47 public:
48 enum domain { af_inet = AF_INET };
49
50 sockinetbuf (const sockbuf& si): sockbuf(si) {}
51 sockinetbuf (const sockinetbuf& si): sockbuf (si) {}
52 sockinetbuf (sockbuf::type ty, int proto=0);
53
54 sockbuf* open (sockbuf::type, int proto=0);
55
56 sockinetaddr localaddr() const;
57 int localport() const;
58 const char* localhost() const;
59
60 sockinetaddr peeraddr() const;
61 int peerport() const;
62 const char* peerhost() const;
63
64 int bind_until_success (int portno);
65
66 virtual int bind (sockAddr& sa);
67 int bind ();
68 int bind (unsigned long addr, int port_no=0);
69 int bind (const char* host_name, int port_no=0);
70 int bind (unsigned long addr,
71 const char* service_name,
72 const char* protocol_name="tcp");
73 int bind (const char* host_name,
74 const char* service_name,
75 const char* protocol_name="tcp");
76
77 virtual int connect (sockAddr& sa);
78 int connect (unsigned long addr, int port_no=0);
79 int connect (const char* host_name, int port_no=0);
80 int connect (unsigned long addr,
81 const char* service_name,
82 const char* protocol_name="tcp");
83 int connect (const char* host_name,
84 const char* service_name,
85 const char* protocol_name="tcp");
86
87 };
88
89 class isockinet: public isockstream
90 {
91 public:
92 isockinet (const sockbuf& sb);
93 isockinet (sockbuf::type ty=sockbuf::sock_stream,
94 int proto=0);
95 ~isockinet ();
96
97 sockinetbuf* rdbuf () { return (sockinetbuf*)ios::rdbuf (); }
98 sockinetbuf* operator -> () { return rdbuf (); }
99 };
100
101 class osockinet: public osockstream
102 {
103 public:
104 osockinet (const sockbuf& sb);
105 osockinet (sockbuf::type ty=sockbuf::sock_stream,
106 int proto=0);
107 ~osockinet ();
108
109 sockinetbuf* rdbuf () { return (sockinetbuf*)ios::rdbuf (); }
110 sockinetbuf* operator -> () { return rdbuf (); }
111 };
112
113 class iosockinet: public iosockstream
114 {
115 public:
116 iosockinet (const sockbuf& sb);
117 iosockinet (sockbuf::type ty=sockbuf::sock_stream,
118 int proto=0);
119 ~iosockinet ();
120
121 sockinetbuf* rdbuf () { return (sockinetbuf*)ios::rdbuf (); }
122 sockinetbuf* operator -> () { return rdbuf (); }
123 };
124
125 #endif // _SOCKINET_H