add new isServer attribute

git-svn-id: svn://10.0.0.236/trunk@43849 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alecf%netscape.com
1999-08-20 22:41:38 +00:00
parent 8bb8cac4eb
commit ebc9d39804
3 changed files with 65 additions and 13 deletions

View File

@@ -61,6 +61,7 @@ interface nsIMsgFolder : nsIFolder {
readonly attribute boolean showDeletedMessages;
readonly attribute nsIMsgIncomingServer server;
readonly attribute boolean isServer;
void OnCloseFolder ();
void Delete ();

View File

@@ -50,8 +50,9 @@ nsMsgFolder::nsMsgFolder(void)
mNumTotalMessages(-1),
mDepth(0),
mPrefFlags(0),
mBiffState(nsMsgBiffState_NoMail),
mNumNewBiffMessages(0)
mBiffState(nsMsgBiffState_NoMail),
mNumNewBiffMessages(0),
mIsServer(PR_FALSE)
{
// NS_INIT_REFCNT(); done by superclass
@@ -95,7 +96,8 @@ NS_IMETHODIMP nsMsgFolder::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
if (!aInstancePtr) return NS_ERROR_NULL_POINTER;
*aInstancePtr = nsnull;
if (aIID.Equals(nsCOMTypeInfo<nsIMsgFolder>::GetIID()) || aIID.Equals(nsCOMTypeInfo<nsIFolder>::GetIID()))
if (aIID.Equals(nsCOMTypeInfo<nsIMsgFolder>::GetIID()) ||
aIID.Equals(nsCOMTypeInfo<nsIFolder>::GetIID()))
{
*aInstancePtr = NS_STATIC_CAST(nsIMsgFolder*, this);
}
@@ -109,6 +111,35 @@ NS_IMETHODIMP nsMsgFolder::QueryInterface(REFNSIID aIID, void** aInstancePtr)
return nsRDFResource::QueryInterface(aIID, aInstancePtr);
}
NS_IMETHODIMP
nsMsgFolder::Init(const char* aURI)
{
nsresult rv;
// this parsing is totally hacky. we really should generalize this,
// but I'm not going to do this until we can eliminate the
// nsXXX2Name/etc routines
// -alecf
// do initial parsing of the URI
const char *cp=aURI;
// skip to initial //
while (*cp && (*cp != '/'))
cp++;
// skip past //
while (*cp && (*cp == '/'))
cp++;
if (PL_strchr(cp, '/'))
mIsServer = PR_FALSE;
else
mIsServer = PR_TRUE;
return nsRDFResource::Init(aURI);
}
////////////////////////////////////////////////////////////////////////////////
typedef PRBool
@@ -295,6 +326,12 @@ NS_IMETHODIMP nsMsgFolder::BuildUrl(nsMsgDatabase *db, nsMsgKey key, char ** url
NS_IMETHODIMP nsMsgFolder::GetServer(nsIMsgIncomingServer ** aServer)
{
/* this should really just:
- truncate the URI
- GetResource on the URI
- QueryInterface to nsIMsgIncomingServer::GetIID()
*/
nsresult rv = NS_OK;
if (!m_server) // if we haven't fetched the server yet....
{
@@ -340,6 +377,14 @@ NS_IMETHODIMP nsMsgFolder::GetServer(nsIMsgIncomingServer ** aServer)
return rv;
}
NS_IMETHODIMP
nsMsgFolder::GetIsServer(PRBool *aResult)
{
NS_ENSURE_ARG_POINTER(aResult);
*aResult = mIsServer;
return NS_OK;
}
NS_IMETHODIMP nsMsgFolder::GetPrettyName(PRUnichar ** name)
{
if (!name)
@@ -1324,20 +1369,20 @@ NS_IMETHODIMP nsMsgFolder::UserNeedsToAuthenticateForFolder(PRBool displayOnly,
#if 0
NS_IMETHODIMP nsMsgFolder::GetUsername(char **userName)
{
if(!userName)
return NS_ERROR_NULL_POINTER;
*userName = "";
return NS_OK;
nsCOMPtr<nsIMsgIncomingServer> server;
nsresult rv = GetServer(getter_AddRefs(server));
if (NS_FAILED(rv)) return rv;
return server->GetUsername(userName);
}
NS_IMETHODIMP nsMsgFolder::GetHostname(char **hostName)
{
if(!hostName)
return NS_ERROR_NULL_POINTER;
*hostName = "";
return NS_OK;
nsCOMPtr<nsIMsgIncomingServer> server;
nsresult rv = GetServer(getter_AddRefs(server));
if (NS_FAILED(rv)) return rv;
return server->GetHostname(hostName);
}
#endif

View File

@@ -45,6 +45,10 @@ public:
NS_DECL_ISUPPORTS_INHERITED
// nsIRDFResource
NS_IMETHOD Init(const char *aURI);
// nsICollection methods:
NS_IMETHOD Count(PRUint32 *result) {
return mSubFolders->Count(result);
@@ -93,6 +97,7 @@ public:
NS_IMETHOD HasMessage(nsIMessage *message, PRBool *hasMessage);
NS_IMETHOD GetServer(nsIMsgIncomingServer ** aServer);
NS_IMETHOD GetIsServer(PRBool *aResult);
NS_IMETHOD GetPrettyName(PRUnichar ** name);
@@ -345,6 +350,7 @@ protected:
PRInt32 mNumNewBiffMessages;
PRBool mIsCachable;
PRBool mIsServer;
};
#endif