• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdepimlibs-4.14.10 API Reference
  • KDE Home
  • Contact Us
 

kioslave/nntp

  • kioslave
  • nntp
nntp.h
1/* This file is part of KDE
2 Copyright (C) 2000 by Wolfram Diestel <wolfram@steloj.de>
3 Copyright (C) 2005 by Tim Way <tim@way.hrcoxmail.com>
4 Copyright (C) 2005 by Volker Krause <vkrause@kde.org>
5
6 This is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License version 2 as published by the Free Software Foundation.
9*/
10
11#ifndef _NNTP_H
12#define _NNTP_H
13
14#include <kurl.h>
15#include <kio/tcpslavebase.h>
16
17#define MAX_PACKET_LEN 8192
18
19/* TODO:
20 - test special post command
21 - progress information in get, and maybe post
22 - remove unnecessary debug stuff
23*/
33class NNTPProtocol:public KIO::TCPSlaveBase
34{
35
36 public:
40 NNTPProtocol ( const QByteArray & pool, const QByteArray & app, bool isSSL );
41 virtual ~NNTPProtocol();
42
43 virtual void get(const KUrl& url );
44 virtual void put( const KUrl& url, int permissions, KIO::JobFlags flags );
45 virtual void stat(const KUrl& url );
46 virtual void listDir(const KUrl& url );
47 virtual void setHost(const QString& host, quint16 port,
48 const QString& user, const QString& pass);
49
58 virtual void special(const QByteArray& data);
59
60 protected:
61
67 int sendCommand( const QString &cmd );
68
73 void nntp_close ();
74
79 bool nntp_open();
80
84 bool post_article();
85
86
87 private:
88 QString mHost, mUser, mPass;
89 quint16 m_port, m_defaultPort;
90 bool postingAllowed, isAuthenticated;
91 char readBuffer[MAX_PACKET_LEN];
92 ssize_t readBufferLen;
94 QString mCurrentGroup;
95
102 void fetchGroups( const QString &since, bool desc );
112 bool fetchGroup ( QString &group, unsigned long first = 0, unsigned long max = 0 );
119 bool fetchGroupRFC977( unsigned long first );
130 bool fetchGroupXOVER( unsigned long first, bool &notSupported );
132 void fillUDSEntry ( KIO::UDSEntry & entry, const QString & name, long size,
133 bool is_article, long access = 0 );
135 void unexpected_response ( int res_code, const QString & command );
141 int evalResponse ( char *data, ssize_t &len );
147 int authenticate();
148};
149
150#endif
NNTPProtocol
NNTP KIO slave.
Definition nntp.h:34
NNTPProtocol::special
virtual void special(const QByteArray &data)
Special command: 1 = post article it takes no other args, the article data are requested by dataReq()...
Definition nntp.cpp:186
NNTPProtocol::nntp_open
bool nntp_open()
Attempt to initiate a NNTP connection via a TCP socket, if no existing connection could be reused.
Definition nntp.cpp:731
NNTPProtocol::nntp_close
void nntp_close()
Attempt to properly shut down the NNTP connection by sending "QUIT\r\n" before closing the socket.
Definition nntp.cpp:722
NNTPProtocol::sendCommand
int sendCommand(const QString &cmd)
Send a command to the server.
Definition nntp.cpp:793
NNTPProtocol::NNTPProtocol
NNTPProtocol(const QByteArray &pool, const QByteArray &app, bool isSSL)
Default Constructor.
Definition nntp.cpp:62
NNTPProtocol::post_article
bool post_article()
Post article.
Definition nntp.cpp:202
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Wed Jan 24 2024 00:00:00 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kioslave/nntp

Skip menu "kioslave/nntp"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Members
  • File List
  • Related Pages

kdepimlibs-4.14.10 API Reference

Skip menu "kdepimlibs-4.14.10 API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal