Skip to content

Instantly share code, notes, and snippets.

@jmlvanre
Last active August 29, 2015 14:08
Show Gist options
  • Save jmlvanre/314380e94986d285cec7 to your computer and use it in GitHub Desktop.
Save jmlvanre/314380e94986d285cec7 to your computer and use it in GitHub Desktop.
class IP {
enum family {
INET,
INET6
};
virtual ~IP() {}
inline family getFamily() const {
return _family;
}
virtual setSockAddrIn(sockaddr_in& data) const = 0;
protected:
IP(family fam) : _family(fam) {}
private:
family _family;
};
class IPV4 : public IP {
public:
IPV4(...) : IP(INET), ... {}
virtual ~IPV4() {...}
virtual setSockAddrIn(sockaddr_in& data) const {...}
private:
uint32_t ip;
}
class IPV6 : public IP {
public:
IPV6(...) : IP(INET6), ... {}
virtual ~IPV6() {...}
virtual setSockAddrIn(sockaddr_in& data) const {...}
private:
uint32_t ip[4];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment