private Connection SetCurrentConnection(Connection conn, out Object guid) { Connection previous = null; Current current = GetPICurrent(); try { // tenta reaproveitar o guid guid = current.get_slot(_connectionIdSlotId); if (guid != null) { previous = GetConnectionById(guid); if (conn == null) { current.set_slot(_connectionIdSlotId, null); SetConnectionById(guid, null); return(previous); } } else { if (conn == null) { return(null); } guid = new Object(); current.set_slot(_connectionIdSlotId, guid); } SetConnectionById(guid, conn); return(previous); } catch (InvalidSlot e) { Logger.Fatal(ConnectionIdErrorMsg, e); throw; } }
public void TestSlotModifyInClientRecContextAndServer() { try { int slotId = m_testInterceptorInit.RequestIntercept.SlotId; ORB orb = OrbServices.GetSingleton(); omg.org.PortableInterceptor.Current current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); int contextEntryVal = 4; current.set_slot(slotId, contextEntryVal); System.Int32 arg = 1; System.Int32 result = m_testService.TestAddToContextData(arg); Assertion.AssertEquals(arg + contextEntryVal, result); Assertion.Assert("service context not present", m_testInterceptorInit.RequestIntercept.HasReceivedContextElement); Assertion.AssertEquals("service context content", arg + contextEntryVal, m_testInterceptorInit.RequestIntercept.ContextElement.TestEntry); current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); Assertion.AssertEquals("slot was modified", contextEntryVal, current.get_slot(slotId)); } finally { m_testInterceptorInit.RequestIntercept.ClearInvocationHistory(); } }
public bool NoValueInScope() { ORB orb = OrbServices.GetSingleton(); omg.org.PortableInterceptor.Current current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); return(current.get_slot(m_slotId) == null); }
public System.Int32 TestAddToContextData(System.Int32 arg) { ORB orb = OrbServices.GetSingleton(); omg.org.PortableInterceptor.Current current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); int contextData = (int)current.get_slot(m_slotId); int result = contextData + arg; current.set_slot(m_slotId, result); return(result); }
public void receive_request(ServerRequestInfo ri) { // modify request scope after copy to the thread scope -> must not be propagated to the thread scope. if (ri.operation == "TestReceiveReqNotChangeThreadScope") { ri.set_slot(m_slotId, 2 * (int)ri.get_slot(m_slotId)); } else if (ri.operation == "TestReceiveReqChangeThreadScope") { ORB orb = OrbServices.GetSingleton(); omg.org.PortableInterceptor.Current current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); current.set_slot(m_slotId, 3 * (int)current.get_slot(m_slotId)); } }
public void TestNoSlotSet() { // receive request modifies the thread scope slots try { int slotId = m_testInterceptorInit.RequestIntercept.SlotId; ORB orb = OrbServices.GetSingleton(); omg.org.PortableInterceptor.Current current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); current.set_slot(slotId, null); System.Boolean result = m_testService.NoValueInScope(); Assertion.Assert("value in slot", result); Assertion.Assert("service context present", !m_testInterceptorInit.RequestIntercept.HasReceivedContextElement); current = (omg.org.PortableInterceptor.Current)orb.resolve_initial_references("PICurrent"); Assertion.AssertNull("slot was set", current.get_slot(slotId)); } finally { m_testInterceptorInit.RequestIntercept.ClearInvocationHistory(); } }