2005/5/9

     
 

AcdkObjectInterface.h

artefaktur
// -*- mode:C++; tab-width:2; c-basic-offset:2; indent-tabs-mode:nil -*- 
//
// Copyright (C) 2000 by Roger Rene Kommer / artefaktur, Kassel, GermRDmiObject.
// ALL RIGHTS RESERVED
// 
// This file is part of ACDK.
// artefaktur provides this software "as is" without express or implied warranty.
// RDmiObject commercial use of this software requires a license.
// 
// $Header: /cvsroot/acdk/acdk/acdkx_orb/src/acdkx/orb/AcdkObjectInterface.h,v 1.7 2005/04/13 16:54:07 kommer Exp $
#ifndef acdkx_orb_AcdkObjectInterface_h
#define acdkx_orb_AcdkObjectInterface_h

#include <acdk.h>
#include <acdkx/orb/orb.h>
#include <acdkx/orb/ServerDelegate.h>
#include <acdk/lang/dmi/DmiObject.h>

namespace acdkx {
namespace orb {


USING_CLASS(::acdk::lang::dmi::, DmiObject);

ACDK_DECL_INTERFACE(AcdkObjectInterface);

/**
  dynamic interface to orb objects
*/
class ACDKX_ORB_PUBLIC AcdkObjectInterface
      ACDK_INTERFACEBASE
{
  ACDK_WITH_METAINFO(AcdkObjectInterface)
public: 
  virtual ::acdk::lang::RObject get_cor_factory(IN(RString) classname) = 0;
  virtual ::acdk::lang::RObject dyn_new(IN(RString) classname, IN(RString) constructor, IN(RDmiObjectArray) inp, OUT(RDmiObjectArray) outp) = 0;
  virtual RDmiObject dyn_invoke(IN(RString) methodname, IN(RDmiObjectArray) inp, OUT(RDmiObjectArray) outp) = 0;
  virtual RDmiObject dyn_invoke_static(IN(RString) classname, IN(RString) methodname, IN(RDmiObjectArray) inp, OUT(RDmiObjectArray) outp) = 0;
  virtual RDmiObject dyn_peek(IN(RString) membername) = 0;
  virtual RDmiObject dyn_peek_static(IN(RString) classname, IN(RString) membername) = 0;
  virtual void dyn_poke(IN(RString) membername, IN(RDmiObject) value) = 0;
  virtual void dyn_poke_static(IN(RString) classname, IN(RString) membername, IN(RDmiObject) value) = 0;
};

} // namespace orb 
} // namespace acdkx 
#endif //acdkx_orb_AcdkObjectInterface_h