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

#ifndef __gen_nsIPresentationSessionTransportBuilder_h__
#define __gen_nsIPresentationSessionTransportBuilder_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIPresentationChannelDescription; /* forward declaration */

class nsISocketTransport; /* forward declaration */

class mozIDOMWindow; /* forward declaration */

class nsIPresentationControlChannel; /* forward declaration */

class nsIPresentationSessionTransport; /* forward declaration */


/* starting interface:    nsIPresentationSessionTransportBuilderListener */
#define NS_IPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER_IID_STR "673f6de1-e253-41b8-9be8-b7ff161fa8dc"

#define NS_IPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER_IID \
  {0x673f6de1, 0xe253, 0x41b8, \
    { 0x9b, 0xe8, 0xb7, 0xff, 0x16, 0x1f, 0xa8, 0xdc }}

class NS_NO_VTABLE nsIPresentationSessionTransportBuilderListener : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER_IID)

  /* void onSessionTransport (in nsIPresentationSessionTransport transport); */
  NS_IMETHOD OnSessionTransport(nsIPresentationSessionTransport *transport) = 0;

  /* void onError (in nsresult reason); */
  NS_IMETHOD OnError(nsresult reason) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIPresentationSessionTransportBuilderListener, NS_IPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER \
  NS_IMETHOD OnSessionTransport(nsIPresentationSessionTransport *transport) override; \
  NS_IMETHOD OnError(nsresult reason) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER \
  NS_METHOD OnSessionTransport(nsIPresentationSessionTransport *transport); \
  NS_METHOD OnError(nsresult reason); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER(_to) \
  NS_IMETHOD OnSessionTransport(nsIPresentationSessionTransport *transport) override { return _to OnSessionTransport(transport); } \
  NS_IMETHOD OnError(nsresult reason) override { return _to OnError(reason); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER(_to) \
  NS_IMETHOD OnSessionTransport(nsIPresentationSessionTransport *transport) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnSessionTransport(transport); } \
  NS_IMETHOD OnError(nsresult reason) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(reason); } 

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

/* Header file */
class nsPresentationSessionTransportBuilderListener : public nsIPresentationSessionTransportBuilderListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPRESENTATIONSESSIONTRANSPORTBUILDERLISTENER

  nsPresentationSessionTransportBuilderListener();

private:
  ~nsPresentationSessionTransportBuilderListener();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsPresentationSessionTransportBuilderListener, nsIPresentationSessionTransportBuilderListener)

nsPresentationSessionTransportBuilderListener::nsPresentationSessionTransportBuilderListener()
{
  /* member initializers and constructor code */
}

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

/* void onSessionTransport (in nsIPresentationSessionTransport transport); */
NS_IMETHODIMP nsPresentationSessionTransportBuilderListener::OnSessionTransport(nsIPresentationSessionTransport *transport)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in nsresult reason); */
NS_IMETHODIMP nsPresentationSessionTransportBuilderListener::OnError(nsresult reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIPresentationSessionTransportBuilder */
#define NS_IPRESENTATIONSESSIONTRANSPORTBUILDER_IID_STR "2fdbe67d-80f9-48dc-8237-5bef8fa19801"

#define NS_IPRESENTATIONSESSIONTRANSPORTBUILDER_IID \
  {0x2fdbe67d, 0x80f9, 0x48dc, \
    { 0x82, 0x37, 0x5b, 0xef, 0x8f, 0xa1, 0x98, 0x01 }}

class NS_NO_VTABLE nsIPresentationSessionTransportBuilder : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPRESENTATIONSESSIONTRANSPORTBUILDER_IID)

  enum {
    TYPE_SENDER = 1U,
    TYPE_RECEIVER = 2U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIPresentationSessionTransportBuilder, NS_IPRESENTATIONSESSIONTRANSPORTBUILDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPRESENTATIONSESSIONTRANSPORTBUILDER \

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIPRESENTATIONSESSIONTRANSPORTBUILDER \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPRESENTATIONSESSIONTRANSPORTBUILDER(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPRESENTATIONSESSIONTRANSPORTBUILDER(_to) \

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

/* Header file */
class nsPresentationSessionTransportBuilder : public nsIPresentationSessionTransportBuilder
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPRESENTATIONSESSIONTRANSPORTBUILDER

  nsPresentationSessionTransportBuilder();

private:
  ~nsPresentationSessionTransportBuilder();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsPresentationSessionTransportBuilder, nsIPresentationSessionTransportBuilder)

nsPresentationSessionTransportBuilder::nsPresentationSessionTransportBuilder()
{
  /* member initializers and constructor code */
}

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

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


/* starting interface:    nsIPresentationTCPSessionTransportBuilder */
#define NS_IPRESENTATIONTCPSESSIONTRANSPORTBUILDER_IID_STR "cde36d6e-f471-4262-a70d-f932a26b21d9"

#define NS_IPRESENTATIONTCPSESSIONTRANSPORTBUILDER_IID \
  {0xcde36d6e, 0xf471, 0x4262, \
    { 0xa7, 0x0d, 0xf9, 0x32, 0xa2, 0x6b, 0x21, 0xd9 }}

class NS_NO_VTABLE nsIPresentationTCPSessionTransportBuilder : public nsIPresentationSessionTransportBuilder {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPRESENTATIONTCPSESSIONTRANSPORTBUILDER_IID)

  /* void buildTCPSenderTransport (in nsISocketTransport aTransport, in nsIPresentationSessionTransportBuilderListener aListener); */
  NS_IMETHOD BuildTCPSenderTransport(nsISocketTransport *aTransport, nsIPresentationSessionTransportBuilderListener *aListener) = 0;

  /* void buildTCPReceiverTransport (in nsIPresentationChannelDescription aDescription, in nsIPresentationSessionTransportBuilderListener aListener); */
  NS_IMETHOD BuildTCPReceiverTransport(nsIPresentationChannelDescription *aDescription, nsIPresentationSessionTransportBuilderListener *aListener) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIPresentationTCPSessionTransportBuilder, NS_IPRESENTATIONTCPSESSIONTRANSPORTBUILDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPRESENTATIONTCPSESSIONTRANSPORTBUILDER \
  NS_IMETHOD BuildTCPSenderTransport(nsISocketTransport *aTransport, nsIPresentationSessionTransportBuilderListener *aListener) override; \
  NS_IMETHOD BuildTCPReceiverTransport(nsIPresentationChannelDescription *aDescription, nsIPresentationSessionTransportBuilderListener *aListener) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIPRESENTATIONTCPSESSIONTRANSPORTBUILDER \
  NS_METHOD BuildTCPSenderTransport(nsISocketTransport *aTransport, nsIPresentationSessionTransportBuilderListener *aListener); \
  NS_METHOD BuildTCPReceiverTransport(nsIPresentationChannelDescription *aDescription, nsIPresentationSessionTransportBuilderListener *aListener); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPRESENTATIONTCPSESSIONTRANSPORTBUILDER(_to) \
  NS_IMETHOD BuildTCPSenderTransport(nsISocketTransport *aTransport, nsIPresentationSessionTransportBuilderListener *aListener) override { return _to BuildTCPSenderTransport(aTransport, aListener); } \
  NS_IMETHOD BuildTCPReceiverTransport(nsIPresentationChannelDescription *aDescription, nsIPresentationSessionTransportBuilderListener *aListener) override { return _to BuildTCPReceiverTransport(aDescription, aListener); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPRESENTATIONTCPSESSIONTRANSPORTBUILDER(_to) \
  NS_IMETHOD BuildTCPSenderTransport(nsISocketTransport *aTransport, nsIPresentationSessionTransportBuilderListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildTCPSenderTransport(aTransport, aListener); } \
  NS_IMETHOD BuildTCPReceiverTransport(nsIPresentationChannelDescription *aDescription, nsIPresentationSessionTransportBuilderListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildTCPReceiverTransport(aDescription, aListener); } 

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

/* Header file */
class nsPresentationTCPSessionTransportBuilder : public nsIPresentationTCPSessionTransportBuilder
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPRESENTATIONTCPSESSIONTRANSPORTBUILDER

  nsPresentationTCPSessionTransportBuilder();

private:
  ~nsPresentationTCPSessionTransportBuilder();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsPresentationTCPSessionTransportBuilder, nsIPresentationTCPSessionTransportBuilder)

nsPresentationTCPSessionTransportBuilder::nsPresentationTCPSessionTransportBuilder()
{
  /* member initializers and constructor code */
}

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

/* void buildTCPSenderTransport (in nsISocketTransport aTransport, in nsIPresentationSessionTransportBuilderListener aListener); */
NS_IMETHODIMP nsPresentationTCPSessionTransportBuilder::BuildTCPSenderTransport(nsISocketTransport *aTransport, nsIPresentationSessionTransportBuilderListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void buildTCPReceiverTransport (in nsIPresentationChannelDescription aDescription, in nsIPresentationSessionTransportBuilderListener aListener); */
NS_IMETHODIMP nsPresentationTCPSessionTransportBuilder::BuildTCPReceiverTransport(nsIPresentationChannelDescription *aDescription, nsIPresentationSessionTransportBuilderListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIPresentationDataChannelSessionTransportBuilder */
#define NS_IPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER_IID_STR "8131c4e0-3a8c-4bc1-a92a-8431473d2fe8"

#define NS_IPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER_IID \
  {0x8131c4e0, 0x3a8c, 0x4bc1, \
    { 0xa9, 0x2a, 0x84, 0x31, 0x47, 0x3d, 0x2f, 0xe8 }}

class NS_NO_VTABLE nsIPresentationDataChannelSessionTransportBuilder : public nsIPresentationSessionTransportBuilder {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER_IID)

  /* void buildDataChannelTransport (in uint8_t aType, in mozIDOMWindow aWindow, in nsIPresentationControlChannel aControlChannel, in nsIPresentationSessionTransportBuilderListener aListener); */
  NS_IMETHOD BuildDataChannelTransport(uint8_t aType, mozIDOMWindow *aWindow, nsIPresentationControlChannel *aControlChannel, nsIPresentationSessionTransportBuilderListener *aListener) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIPresentationDataChannelSessionTransportBuilder, NS_IPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER \
  NS_IMETHOD BuildDataChannelTransport(uint8_t aType, mozIDOMWindow *aWindow, nsIPresentationControlChannel *aControlChannel, nsIPresentationSessionTransportBuilderListener *aListener) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER \
  NS_METHOD BuildDataChannelTransport(uint8_t aType, mozIDOMWindow *aWindow, nsIPresentationControlChannel *aControlChannel, nsIPresentationSessionTransportBuilderListener *aListener); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER(_to) \
  NS_IMETHOD BuildDataChannelTransport(uint8_t aType, mozIDOMWindow *aWindow, nsIPresentationControlChannel *aControlChannel, nsIPresentationSessionTransportBuilderListener *aListener) override { return _to BuildDataChannelTransport(aType, aWindow, aControlChannel, aListener); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER(_to) \
  NS_IMETHOD BuildDataChannelTransport(uint8_t aType, mozIDOMWindow *aWindow, nsIPresentationControlChannel *aControlChannel, nsIPresentationSessionTransportBuilderListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildDataChannelTransport(aType, aWindow, aControlChannel, aListener); } 

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

/* Header file */
class nsPresentationDataChannelSessionTransportBuilder : public nsIPresentationDataChannelSessionTransportBuilder
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPRESENTATIONDATACHANNELSESSIONTRANSPORTBUILDER

  nsPresentationDataChannelSessionTransportBuilder();

private:
  ~nsPresentationDataChannelSessionTransportBuilder();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsPresentationDataChannelSessionTransportBuilder, nsIPresentationDataChannelSessionTransportBuilder)

nsPresentationDataChannelSessionTransportBuilder::nsPresentationDataChannelSessionTransportBuilder()
{
  /* member initializers and constructor code */
}

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

/* void buildDataChannelTransport (in uint8_t aType, in mozIDOMWindow aWindow, in nsIPresentationControlChannel aControlChannel, in nsIPresentationSessionTransportBuilderListener aListener); */
NS_IMETHODIMP nsPresentationDataChannelSessionTransportBuilder::BuildDataChannelTransport(uint8_t aType, mozIDOMWindow *aWindow, nsIPresentationControlChannel *aControlChannel, nsIPresentationSessionTransportBuilderListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIPresentationSessionTransportBuilder_h__ */
