#ifndef _VIDEOSERVICEPROVIDER_H
#define _VIDEOSERVICEPROVIDER_H

#include "Common/ServerS.h"
#include "Common/ServerC.h"
#include "Common/ObjectAdapter.h"

#include "VideoCompany.h"

#include <ace/Containers_T.h>

#include "macro.h"

typedef ACE_Array<VideoCompany*> VideoCompanyArray;

class OPENFUSION_VIDEO_DLL VideoServiceProvider
  : public POA_Server::ServiceProvider
{
public:

  VideoServiceProvider (CORBA::ORB_ptr orb);

  virtual Server::CompanyNameList *getCompanies (void);

  void store (VideoCompany *company);

  ObjectAdapter *getObjectAdapter (void) { return &adapter_; }

  virtual void helloWorld (void);

private:

  VideoCompanyArray companies_;

  ObjectAdapter adapter_;
};

#endif  // _VIDEOSERVICEPROVIDER_H
