AtmiBrokerPoaFac.cxx
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:3k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. #ifdef TAO_COMP
  19. #include <tao/ORB.h>
  20. #include "tao/ORB_Core.h"
  21. #include "tao/AnyTypeCode/Any.h"
  22. #endif
  23. #include <stdio.h>
  24. #include <stdlib.h>
  25. #include <string.h>
  26. #include <iostream>
  27. #include "AtmiBrokerPoaFac.h"
  28. #include "log4cxx/logger.h"
  29. log4cxx::LoggerPtr loggerAtmiBrokerPoaFac(log4cxx::Logger::getLogger(
  30. "AtmiBrokerPoaFac"));
  31. AtmiBrokerPoaFac::AtmiBrokerPoaFac() {
  32. // Intentionally empty.
  33. }
  34. AtmiBrokerPoaFac::~AtmiBrokerPoaFac() {
  35. // Intentionally empty.
  36. //
  37. }
  38. // createCallbackPoa() -- Create a POA using a ServantActivator.
  39. //
  40. PortableServer::POA_ptr AtmiBrokerPoaFac::createCallbackPoa(CORBA::ORB_ptr orb,
  41. const char* poa_name, PortableServer::POA_ptr parent_poa,
  42. PortableServer::POAManager_ptr poa_manager) {
  43. CORBA::PolicyList policies;
  44. policies.length(0);
  45. return parent_poa->create_POA(poa_name, poa_manager, policies);
  46. }
  47. // createServicePoa()
  48. //
  49. PortableServer::POA_ptr AtmiBrokerPoaFac::createServicePoa(CORBA::ORB_ptr orb,
  50. const char* poa_name, PortableServer::POA_ptr parent_poa,
  51. PortableServer::POAManager_ptr poa_manager) {
  52. // Create a policy list. Policies not set in the list get default values.
  53. //
  54. CORBA::PolicyList policies;
  55. policies.length(1);
  56. int i = 0;
  57. policies[i++] = parent_poa->create_thread_policy(
  58. PortableServer::ORB_CTRL_MODEL);
  59. return parent_poa->create_POA(poa_name, poa_manager, policies);
  60. }
  61. // createServerPoa()
  62. //
  63. PortableServer::POA_ptr AtmiBrokerPoaFac::createServerPoa(CORBA::ORB_ptr orb,
  64. const char* poa_name, PortableServer::POA_ptr parent_poa,
  65. PortableServer::POAManager_ptr poa_manager) {
  66. // Create a policy list. Policies not set in the list get default values.
  67. //
  68. CORBA::PolicyList policies;
  69. policies.length(2);
  70. int i = 0;
  71. // policies[i++] = parent_poa->create_lifespan_policy(PortableServer::PERSISTENT);
  72. policies[i++] = parent_poa->create_id_assignment_policy(
  73. PortableServer::USER_ID);
  74. return parent_poa->create_POA(poa_name, poa_manager, policies);
  75. }