SourcePro® API Reference Guide

 
List of all members | Public Member Functions | Protected Member Functions | Related Functions
RWFtpPwdReply Class Reference

A specialization class of RWFtpReply that attempts to parse the FTP protocol reply for the current directory information. More...

#include <rw/ftp/RWFtpPwdReply.h>

Inheritance diagram for RWFtpPwdReply:
RWFtpReply RWNumReply RWReply

Public Member Functions

 RWFtpPwdReply (void)
 
 RWFtpPwdReply (const RWFtpPwdReply &reply)
 
RWCString getDirectory (void) const
 
RWFtpPwdReplyoperator= (const RWFtpPwdReply &reply)
 
- Public Member Functions inherited from RWFtpReply
 RWFtpReply (void)
 
 RWFtpReply (const RWFtpReply &reply)
 
RWFtpReplyoperator= (const RWFtpReply &reply)
 
- Public Member Functions inherited from RWNumReply
 RWNumReply (void)
 
 RWNumReply (const RWNumReply &r)
 
virtual ~RWNumReply (void)
 
void clearAndDestroy (void)
 
size_t entries (void) const
 
RWCString getData (void) const
 
unsigned int getStatusCode (void) const
 
bool is1XX (void) const
 
bool is2XX (void) const
 
bool is3XX (void) const
 
bool is4XX (void) const
 
bool is5XX (void) const
 
RWNumReplyoperator= (const RWNumReply &reply)
 
const RWNumReplyLineoperator[] (size_t i) const
 
- Public Member Functions inherited from RWReply
 RWReply (void)
 
virtual ~RWReply (void)
 
virtual bool isComplete (void) const
 
virtual bool isValid (void) const
 

Protected Member Functions

virtual void parse (void)
 
- Protected Member Functions inherited from RWNumReply
void append (RWNumReplyLine &r)
 
void copy (const RWNumReply &r)
 
void readFromPortal (const RWPortal &portal)
 

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &str, const RWFtpPwdReply &r)
 

Additional Inherited Members

- Protected Attributes inherited from RWReply
bool complete_
 
bool valid_
 

Detailed Description

RWFtpPwdReply is a specialization class of RWFtpReply. RWFtpPwdReply attempts to parse the FTP protocol reply for the current directory information. For instance, the following is a common type of server reply from the PWD command:

257 "/pub" is the current directory

In this reply, 257 is a standardized reply, as defined by the FTP RFC 959. However, the RFC does not include a standard syntax for returning the directory information in the text part of the message. RWFtpPwdReply examines RWNumReplyLine objects contained within self in a last-to-first order, searching for a quoted string. As soon as a match is found, a data member is set to the path. The path can be obtained with the getDirectory() member function.

Although most FTP servers follow this technique, it is not guaranteed because the directory information is returned in the reply text part of the protocol reply. For this reason, failure to parse the directory from the reply does not constitute an error. If the directory name cannot be parsed, the getDirectory() method simply returns an empty string.

Constructor & Destructor Documentation

RWFtpPwdReply::RWFtpPwdReply ( void  )

Default constructor.

RWFtpPwdReply::RWFtpPwdReply ( const RWFtpPwdReply reply)

Copy constructor.

Member Function Documentation

RWCString RWFtpPwdReply::getDirectory ( void  ) const

Returns the present working directory that is obtained by examining the reply text. See the Detailed Description section for this class. The RWCString should contain 7-bit US-ASCII data.

RWFtpPwdReply& RWFtpPwdReply::operator= ( const RWFtpPwdReply reply)

Assignment operator. Makes self a copy of reply. The previous contents of self are lost.

virtual void RWFtpPwdReply::parse ( void  )
protectedvirtual

Provides an extended parse mechanism that can extract the directory path out of the reply text.

Reimplemented from RWNumReply.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  str,
const RWFtpPwdReply r 
)
friend

Outputs an RWFtpPwdReply object to an std::ostream.

Note
Class RWFtpPwdReply does not have an extraction (>>) operator.

Copyright © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.