/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIPSMSocketInfo.idl
 */

#ifndef __gen_nsIPSMSocketInfo_h__
#define __gen_nsIPSMSocketInfo_h__

#include "nsISecureSocketInfo.h"

#include "cmtcmn.h"
#include "nsPSMShimLayer.h"

/* starting interface:    nsIPSMSocketInfo */
#define NS_IPSMSOCKETINFO_IID_STR "deeb8dfc-fb7a-11d3-ac84-00c04fa0d26b"

#define NS_IPSMSOCKETINFO_IID \
  {0xdeeb8dfc, 0xfb7a, 0x11d3, \
    { 0xac, 0x84, 0x00, 0xc0, 0x4f, 0xa0, 0xd2, 0x6b }}

class NS_NO_VTABLE nsIPSMSocketInfo : public nsISecureSocketInfo {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IPSMSOCKETINFO_IID)

  /* readonly attribute psmtControlStar controlPtr; */
  NS_IMETHOD GetControlPtr(CMT_CONTROL * *aControlPtr) = 0;

  /* readonly attribute cmSocketStar socketPtr; */
  NS_IMETHOD GetSocketPtr(CMSocket * *aSocketPtr) = 0;

  /* readonly attribute nsFileDescStar fileDescPtr; */
  NS_IMETHOD GetFileDescPtr(PRFileDesc * *aFileDescPtr) = 0;

  /* void getPickledStatus (out charPtr pickledStatus); */
  NS_IMETHOD GetPickledStatus(char * *pickledStatus) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPSMSOCKETINFO \
  NS_IMETHOD GetControlPtr(CMT_CONTROL * *aControlPtr); \
  NS_IMETHOD GetSocketPtr(CMSocket * *aSocketPtr); \
  NS_IMETHOD GetFileDescPtr(PRFileDesc * *aFileDescPtr); \
  NS_IMETHOD GetPickledStatus(char * *pickledStatus); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPSMSOCKETINFO(_to) \
  NS_IMETHOD GetControlPtr(CMT_CONTROL * *aControlPtr) { return _to ## GetControlPtr(aControlPtr); } \
  NS_IMETHOD GetSocketPtr(CMSocket * *aSocketPtr) { return _to ## GetSocketPtr(aSocketPtr); } \
  NS_IMETHOD GetFileDescPtr(PRFileDesc * *aFileDescPtr) { return _to ## GetFileDescPtr(aFileDescPtr); } \
  NS_IMETHOD GetPickledStatus(char * *pickledStatus) { return _to ## GetPickledStatus(pickledStatus); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsPSMSocketInfo : public nsIPSMSocketInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPSMSOCKETINFO

  nsPSMSocketInfo();
  virtual ~nsPSMSocketInfo();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPSMSocketInfo, nsIPSMSocketInfo)

nsPSMSocketInfo::nsPSMSocketInfo()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

nsPSMSocketInfo::~nsPSMSocketInfo()
{
  /* destructor code */
}

/* readonly attribute psmtControlStar controlPtr; */
NS_IMETHODIMP nsPSMSocketInfo::GetControlPtr(CMT_CONTROL * *aControlPtr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute cmSocketStar socketPtr; */
NS_IMETHODIMP nsPSMSocketInfo::GetSocketPtr(CMSocket * *aSocketPtr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsFileDescStar fileDescPtr; */
NS_IMETHODIMP nsPSMSocketInfo::GetFileDescPtr(PRFileDesc * *aFileDescPtr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPickledStatus (out charPtr pickledStatus); */
NS_IMETHODIMP nsPSMSocketInfo::GetPickledStatus(char * *pickledStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIPSMSocketInfo_h__ */
