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

#ifndef __gen_IMyComponent_h__
#define __gen_IMyComponent_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

/* starting interface:    IMyComponent */
#define IMYCOMPONENT_IID_STR "90758a97-a6f3-4ea4-8953-16bd2ee3a977"

#define IMYCOMPONENT_IID \
  {0x90758a97, 0xa6f3, 0x4ea4, \
    { 0x89, 0x53, 0x16, 0xbd, 0x2e, 0xe3, 0xa9, 0x77 }}

class NS_NO_VTABLE IMyComponent : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMYCOMPONENT_IID)

  /* void Connect (in string address, in string port); */
  NS_IMETHOD Connect(const char *address, const char *port) = 0;

  /* boolean Connected (); */
  NS_IMETHOD Connected(PRBool *_retval) = 0;

  /* void SetPGP (in string path); */
  NS_IMETHOD SetPGP(const char *path) = 0;

  /* void SetNonce (in long nonce1, in long nonce2); */
  NS_IMETHOD SetNonce(PRInt32 nonce1, PRInt32 nonce2) = 0;

  /* void Disconnect (); */
  NS_IMETHOD Disconnect(void) = 0;

  /* void Auth (in string email); */
  NS_IMETHOD Auth(const char *email) = 0;

  /* void Login (in string email); */
  NS_IMETHOD Login(const char *email) = 0;

  /* void RequestCredits (); */
  NS_IMETHOD RequestCredits(void) = 0;

  /* void EnoughCredits (in string to); */
  NS_IMETHOD EnoughCredits(const char *to) = 0;

  /* void CheckStamp (in string from, in string stamp); */
  NS_IMETHOD CheckStamp(const char *from, const char *stamp) = 0;

  /* void SendStamp (in string to, in string stamp); */
  NS_IMETHOD SendStamp(const char *to, const char *stamp) = 0;

  /* string Decrypt (in string text); */
  NS_IMETHOD Decrypt(const char *text, char **_retval) = 0;

  /* string Read (); */
  NS_IMETHOD Read(char **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMYCOMPONENT \
  NS_IMETHOD Connect(const char *address, const char *port); \
  NS_IMETHOD Connected(PRBool *_retval); \
  NS_IMETHOD SetPGP(const char *path); \
  NS_IMETHOD SetNonce(PRInt32 nonce1, PRInt32 nonce2); \
  NS_IMETHOD Disconnect(void); \
  NS_IMETHOD Auth(const char *email); \
  NS_IMETHOD Login(const char *email); \
  NS_IMETHOD RequestCredits(void); \
  NS_IMETHOD EnoughCredits(const char *to); \
  NS_IMETHOD CheckStamp(const char *from, const char *stamp); \
  NS_IMETHOD SendStamp(const char *to, const char *stamp); \
  NS_IMETHOD Decrypt(const char *text, char **_retval); \
  NS_IMETHOD Read(char **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMYCOMPONENT(_to) \
  NS_IMETHOD Connect(const char *address, const char *port) { return _to Connect(address, port); } \
  NS_IMETHOD Connected(PRBool *_retval) { return _to Connected(_retval); } \
  NS_IMETHOD SetPGP(const char *path) { return _to SetPGP(path); } \
  NS_IMETHOD SetNonce(PRInt32 nonce1, PRInt32 nonce2) { return _to SetNonce(nonce1, nonce2); } \
  NS_IMETHOD Disconnect(void) { return _to Disconnect(); } \
  NS_IMETHOD Auth(const char *email) { return _to Auth(email); } \
  NS_IMETHOD Login(const char *email) { return _to Login(email); } \
  NS_IMETHOD RequestCredits(void) { return _to RequestCredits(); } \
  NS_IMETHOD EnoughCredits(const char *to) { return _to EnoughCredits(to); } \
  NS_IMETHOD CheckStamp(const char *from, const char *stamp) { return _to CheckStamp(from, stamp); } \
  NS_IMETHOD SendStamp(const char *to, const char *stamp) { return _to SendStamp(to, stamp); } \
  NS_IMETHOD Decrypt(const char *text, char **_retval) { return _to Decrypt(text, _retval); } \
  NS_IMETHOD Read(char **_retval) { return _to Read(_retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMYCOMPONENT(_to) \
  NS_IMETHOD Connect(const char *address, const char *port) { return !_to ? NS_ERROR_NULL_POINTER : _to->Connect(address, port); } \
  NS_IMETHOD Connected(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Connected(_retval); } \
  NS_IMETHOD SetPGP(const char *path) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPGP(path); } \
  NS_IMETHOD SetNonce(PRInt32 nonce1, PRInt32 nonce2) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNonce(nonce1, nonce2); } \
  NS_IMETHOD Disconnect(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Disconnect(); } \
  NS_IMETHOD Auth(const char *email) { return !_to ? NS_ERROR_NULL_POINTER : _to->Auth(email); } \
  NS_IMETHOD Login(const char *email) { return !_to ? NS_ERROR_NULL_POINTER : _to->Login(email); } \
  NS_IMETHOD RequestCredits(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RequestCredits(); } \
  NS_IMETHOD EnoughCredits(const char *to) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnoughCredits(to); } \
  NS_IMETHOD CheckStamp(const char *from, const char *stamp) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckStamp(from, stamp); } \
  NS_IMETHOD SendStamp(const char *to, const char *stamp) { return !_to ? NS_ERROR_NULL_POINTER : _to->SendStamp(to, stamp); } \
  NS_IMETHOD Decrypt(const char *text, char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Decrypt(text, _retval); } \
  NS_IMETHOD Read(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(_retval); } 

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

/* Header file */
class _MYCLASS_ : public IMyComponent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMYCOMPONENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMyComponent)

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

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

/* void Connect (in string address, in string port); */
NS_IMETHODIMP _MYCLASS_::Connect(const char *address, const char *port)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean Connected (); */
NS_IMETHODIMP _MYCLASS_::Connected(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetPGP (in string path); */
NS_IMETHODIMP _MYCLASS_::SetPGP(const char *path)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetNonce (in long nonce1, in long nonce2); */
NS_IMETHODIMP _MYCLASS_::SetNonce(PRInt32 nonce1, PRInt32 nonce2)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Disconnect (); */
NS_IMETHODIMP _MYCLASS_::Disconnect()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Auth (in string email); */
NS_IMETHODIMP _MYCLASS_::Auth(const char *email)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Login (in string email); */
NS_IMETHODIMP _MYCLASS_::Login(const char *email)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RequestCredits (); */
NS_IMETHODIMP _MYCLASS_::RequestCredits()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void EnoughCredits (in string to); */
NS_IMETHODIMP _MYCLASS_::EnoughCredits(const char *to)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void CheckStamp (in string from, in string stamp); */
NS_IMETHODIMP _MYCLASS_::CheckStamp(const char *from, const char *stamp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SendStamp (in string to, in string stamp); */
NS_IMETHODIMP _MYCLASS_::SendStamp(const char *to, const char *stamp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string Decrypt (in string text); */
NS_IMETHODIMP _MYCLASS_::Decrypt(const char *text, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string Read (); */
NS_IMETHODIMP _MYCLASS_::Read(char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_IMyComponent_h__ */
