📄 dynamicimplementation.h
字号:
// -*- Mode: C++; -*-// Package : omniORB2// dynamicImplementation.h Created on: 11/1998// Author : David Riddoch (djr)//// Copyright (C) 1996-1999 AT&T Laboratories Cambridge//// This file is part of the omniORB library//// The omniORB library is free software; you can redistribute it and/or// modify it under the terms of the GNU Library General Public// License as published by the Free Software Foundation; either// version 2 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Library General Public License for more details.//// You should have received a copy of the GNU Library General Public// License along with this library; if not, write to the Free// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA // 02111-1307, USA////// Description:// Dynamic Skeleton Interface (DSI).//#ifndef __DYNAMICIMPLEMENTATION_H__#define __DYNAMICIMPLEMENTATION_H__OMNI_NAMESPACE_BEGIN(omni)class serverRequestCallDescriptor;///////////////////////////////////////////////////////////////////////////////////////////////// ServerRequest //////////////////////////////////////////////////////////////////////////////////////////////////class omniServerRequest : public CORBA::ServerRequest {public: virtual ~omniServerRequest(); omniServerRequest(omniCallHandle& handle); virtual const char* operation(); virtual void arguments(CORBA::NVList_ptr&); virtual CORBA::Context_ptr ctx(); virtual void set_result(const CORBA::Any&); virtual void set_exception(const CORBA::Any&); enum State { SR_READY, // initial state SR_GOT_PARAMS, // user has retrieved params AND there is context info // left to be retrieved. SR_GOT_CTX, // user has retrieved params and context SR_GOT_RESULT, // user has given a result value SR_EXCEPTION, // user has set an exception SR_DSI_ERROR, // usage error SR_ERROR // MARSHAL or other error }; ////////////////////// // omniORB internal // ////////////////////// State state() { return pd_state; } void do_reply(); serverRequestCallDescriptor* calldesc() { return pd_calldesc; }private: State pd_state; // to check proper invocation order omniCallHandle& pd_handle; // we don't own serverRequestCallDescriptor* pd_calldesc;};////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////class serverRequestCallDescriptor : public omniCallDescriptor {public: serverRequestCallDescriptor(const char* op,size_t oplen); void unmarshalArguments(cdrStream& s); void marshalReturnedValues(cdrStream& s); CORBA::Context_var pd_context; CORBA::NVList_var pd_params; CORBA::Any pd_result; CORBA::Any pd_exception;};OMNI_NAMESPACE_END(omni)#endif // __DYNAMICIMPLEMENTATION_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -