#ifndef _VIDEOSUPPLIER_H
#define _VIDEOSUPPLIER_H

#include "VideoServiceProvider.h"
#include "VideoCompany.h"

#include <tao/corba.h>
#include <tao/PortableServer/PortableServer.h>
#include <ace/Containers_T.h>

#include "Common/ObjectAdapter.h"

#include "macro.h"

typedef ACE_Array<char*> StringArray;
typedef ACE_Array<StringArray> Array_StringArray;
typedef Array_StringArray::ITERATOR ASA_Iter;

class OPENFUSION_VIDEO_DLL VideoSupplier
  : public VideoCompany
{
public:

  VideoSupplier (const char *name, CORBA::Boolean store = 1);

  virtual Server::OfferList *getOffers (const char *category);

  void addCategory (const char *category);

  void addVideo (const char *category, const char *name);

  static VideoServiceProvider *pServiceProvider_;

protected:

  Array_StringArray videos_;
};

#endif  // _VIDEOSUPPLIER_H
