00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file IdAssignmentStrategy.h 00006 * 00007 * $Id: IdAssignmentStrategy.h 76551 2007-01-24 13:42:44Z johnnyw $ 00008 * 00009 * @author Johnny Willemsen <jwillemsen@remedy.nl> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_ID_ASSIGNMENT_STRATEGY_H 00014 #define TAO_ID_ASSIGNMENT_STRATEGY_H 00015 #include /**/ "ace/pre.h" 00016 00017 #include "tao/PortableServer/Policy_Strategy.h" 00018 00019 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00020 # pragma once 00021 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00022 00023 #include "tao/Basic_Types.h" 00024 00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00026 00027 namespace TAO 00028 { 00029 namespace Portable_Server 00030 { 00031 class IdAssignmentStrategy 00032 : public Policy_Strategy 00033 { 00034 public: 00035 virtual void strategy_init(TAO_Root_POA *poa); 00036 00037 virtual void strategy_cleanup(void); 00038 00039 /** 00040 * Returns the key type the says which specific policy we have 00041 */ 00042 virtual char id_assignment_key_type (void) const = 0; 00043 00044 /** 00045 * Returns the length of the id_assignment type 00046 */ 00047 char key_type_length (void) const; 00048 00049 void create_key (CORBA::Octet *buffer, CORBA::ULong& starting_at); 00050 00051 virtual bool has_system_id (void) const = 0; 00052 }; 00053 } 00054 } 00055 00056 TAO_END_VERSIONED_NAMESPACE_DECL 00057 00058 #include /**/ "ace/post.h" 00059 #endif /* TAO_ID_ASSIGNMENT_STRATEGY_H */