#!/usr/bin/env python
import CORBA
import PortableServer
import Types

class server:
	def test_boolean(self, arg): return not arg
	def test_short(self, arg): return arg * 2
	def test_long(self, arg): return arg * 2
	def test_float(self, arg): return arg * 2
	def test_double(self, arg): return arg * 2
	def test_string(self, arg): return arg * 2
	def test_callback(self, arg):
		return arg.test_string("test") == "testtest"
	def test_factory(self):
		newserver = server()
		newservant = Types.POA_Tester(newserver)
		poa.activate_object(newservant)
		newref = poa.servant_to_reference(newservant)
		print orb.object_to_string(newref)
		return newref

orb = CORBA.ORB_init(("foo", "bar"), "orbit-local-orb")
poa = PortableServer.RootPOA(orb)
poa.the_POAManager.activate()

tester = server()
tester_servant = Types.POA_Tester(tester)
poa.activate_object_with_id("myserver\0", tester_servant)
ref = poa.servant_to_reference(tester_servant)
ior = orb.object_to_string(ref)

iorfile = open("/tmp/python-test.ior", "w")
iorfile.write(ior)
iorfile.close()
print ior

orb.run()

