29 GroupSock(NetAddressList)——live555源码阅读(四)网络
本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso
本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso
简介
网络地址列表是用于保存一系列网络地址的类。它与NetAddress无直接联系。NetAddressList类内部定义了一个二级指针NetAddress** fAddressArray,在使用的时候给它动态申请一个元素个数为unsigned fNumAddresses的指针(NetAddress*)数组。指针数组的每一个元素又指向一个动态申请的NetAddress对象。
1 class NetAddressList { 2 public: 3 // 构造函数hostname可以是一个点分十进制的IP地址,也可以是主机域名 4 NetAddressList(char const* hostname); 5 NetAddressList(NetAddressList const& orig); 6 NetAddressList& operator=(NetAddressList const& rightSide); 7 virtual ~NetAddressList(); 8 //获取地址表中元素个数 9 unsigned numAddresses() const { return fNumAddresses; } 10 //获取地址表第一个地址的内存地址 11 NetAddress const* firstAddress() const; 12 13 // Used to iterate through the addresses in a list: 14 // 用于遍历列表中的地址: 15 class Iterator { 16 public: 17 Iterator(NetAddressList const& addressList); 18 NetAddress const* nextAddress(); // NULL iff none没有跟多地址了 19 private: 20 NetAddressList const& fAddressList; //必须绑定一个地址表 21 unsigned fNextIndex; //下一个地址的索引 22 }; 23 24 private: 25 //为地址表申请内存空间,并将表addressArray中的内容拷贝进去 26 void assign(netAddressBits numAddresses, NetAddress** addressArray); 27 //删除地址表和地址表中所有地址 28 void clean(); 29 30 friend class Iterator; 31 unsigned fNumAddresses; //地址个数 32 NetAddress** fAddressArray; //地址表 33 };