Files
Work/nntp/NEWSITEM.HPP
2024-08-07 09:16:27 -04:00

151 lines
2.6 KiB
C++

#ifndef _NNTP_NEWSITEM_HPP_
#define _NNTP_NEWSITEM_HPP_
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _NNTP_HEADER_HPP_
#include <nntp/header.hpp>
#endif
class NewsItem : public Header
{
public:
NewsItem(void);
NewsItem(const NewsItem &someNewsItem);
NewsItem(const String &pathFileName);
virtual ~NewsItem();
NewsItem &operator=(const NewsItem &someNewsItem);
NewsItem &operator=(const String &pathFileName);
NewsItem &operator=(const Header &someHeader);
WORD operator<(const NewsItem &someNewsItem)const;
WORD operator>(const NewsItem &someNewsItem)const;
WORD operator==(const NewsItem &someNewsItem)const;
const String &name(void)const;
void name(const String &name);
DWORD part(void)const;
void part(DWORD part);
DWORD parts(void)const;
void parts(DWORD parts);
const String &pathFileName(void)const;
void pathFileName(const String &pathFileName);
WORD isOkay(void)const;
private:
String mName;
DWORD mPart;
DWORD mParts;
String mPathFileName;
};
inline
NewsItem::NewsItem(void)
: mPart(0), mParts(0)
{
}
inline
NewsItem::NewsItem(const NewsItem &someNewsItem)
: mPart(0), mParts(0)
{
*this=someNewsItem;
}
inline
NewsItem::NewsItem(const String &pathFileName)
: mPart(0), mParts(0)
{
*this=pathFileName;
}
inline
NewsItem::~NewsItem()
{
}
inline
NewsItem &NewsItem::operator=(const NewsItem &someNewsItem)
{
name(someNewsItem.name());
part(someNewsItem.part());
parts(someNewsItem.parts());
pathFileName(someNewsItem.pathFileName());
return *this;
}
inline
WORD NewsItem::operator==(const NewsItem &someNewsItem)const
{
return (name()==someNewsItem.name()&&
part()==someNewsItem.part()&&
parts()==someNewsItem.parts());
}
inline
WORD NewsItem::operator<(const NewsItem &someNewsItem)const
{
return (part()<someNewsItem.part());
}
inline
WORD NewsItem::operator>(const NewsItem &someNewsItem)const
{
return (part()>someNewsItem.part());
}
inline
const String &NewsItem::name(void)const
{
return mName;
}
inline
void NewsItem::name(const String &name)
{
mName=name;
}
inline
DWORD NewsItem::part(void)const
{
return mPart;
}
inline
void NewsItem::part(DWORD part)
{
mPart=part;
}
inline
DWORD NewsItem::parts(void)const
{
return mParts;
}
inline
void NewsItem::parts(DWORD parts)
{
mParts=parts;
}
inline
const String &NewsItem::pathFileName(void)const
{
return mPathFileName;
}
inline
void NewsItem::pathFileName(const String &pathFileName)
{
mPathFileName=pathFileName;
}
inline
WORD NewsItem::isOkay(void)const
{
if(!part()&&!parts())return FALSE;
return TRUE;
}
#endif