| /********************************************************************** |
| // @@@ START COPYRIGHT @@@ |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| // @@@ END COPYRIGHT @@@ |
| **********************************************************************/ |
| // MODULE: ASSOCSVC.IDL
|
| //
|
| // PURPOSE: Describes the ODBC ASsociation services (AS).
|
| //
|
|
|
| #ifndef ASSOCSVC_H_
|
| #define ASSOCSVC_H_
|
|
|
| #include "common.idl"
|
| #include "odbc.idl"
|
| #include "odbccfg.idl"
|
|
|
| typedef odbc::SQLSvc SQLSvc_ObjRef;
|
| typedef odbccfg::CfgSvc CfgSvc_ObjRef;
|
|
|
| module odbcas {
|
|
|
| #define AS_uuid ((UUID_def) "9101c0ac-e07a-11d0-a543-0060b01ad6ae")
|
| #define AS_version ((VERSION_def) 16777217)
|
|
|
| // note clusterNm is unused but defined in the hopes that the
|
| // cluster will have its own identity
|
|
|
|
|
| interface AS
|
| {
|
| exception ASParamError {string ErrorText;};
|
| exception ASTimeout {string ErrorText;};
|
| exception ASInvalidUserDesc {string ErrorText;};
|
| exception ASNoSvcHdl {string ErrorText;};
|
| exception ASInvalidHandle{};
|
| exception ASRejectRegistry{short RejectReason; string ErrorText;};
|
| exception ASRegistryFailed{};
|
|
|
| // the following is the keepalive call that is not responded to
|
| // until its time to disconnect client from server.
|
| // the call goes from client to server, e.g., ODBC Driver to
|
| // ASiation Service, ODBC Server to ASiation Service.
|
| void RegProcess (
|
| in CLIENT_TYPE_def processType,
|
| in VERSION_def intfVersion,
|
| in PROCESS_ID_def processDesc,
|
| in CONNECTION_CONTEXT_def inContext)
|
| raises (ASTimeout,
|
| ASRegistryFailed,
|
| ASRejectRegistry,
|
| ASParamError);
|
|
|
| void CompleteRegProcess (
|
| in CLIENT_TYPE_def processType,
|
| in PROCESS_ID_def processDesc)
|
| raises (ASTimeout,
|
| ASRegistryFailed,
|
| ASParamError);
|
|
|
| // this is to signal the client is ready to complete the
|
| // the original registry call and then destroy the proxy
|
| void DeRegProcess (
|
| in PROCESS_ID_def processDesc)
|
| raises (ASRegistryFailed,
|
| ASParamError);
|
|
|
| // TODO: this would be extensible if the returned Object Reference
|
| // handles were in a typed sequence. this will be very important
|
| // when addressing stored procedures.
|
|
|
| // changed to a context which is only the Datasource name, and
|
| // the last object reference handle.
|
|
|
| //void GetSQLObjRefHdl(
|
| // in CONNECTION_CONTEXT_def inContext,
|
| // out CONNECTION_CONTEXT_def newContext,
|
| // out SQLSvc_ObjRef aSQLSvcObjRef)
|
| //raises( ASParamError,
|
| // ASInvalidUserDesc,
|
| // ASTimeout,
|
| // ASNoSvcHdl,
|
| // ASInvalidHandle );
|
|
|
| void GetSQLObjRefHdl(
|
| in CONNECTION_CONTEXT_def inContext,
|
| out CONNECTION_CONTEXT_def newContext,
|
| out SQLSvc_ObjRef aSQLSvcObjRef)
|
| raises( ASParamError,
|
| ASInvalidUserDesc,
|
| ASTimeout,
|
| ASNoSvcHdl,
|
| ASInvalidHandle );
|
|
|
| void GetCfgObjRefHdl(
|
| in CONNECTION_CONTEXT_def inContext,
|
| out CONNECTION_CONTEXT_def newContext,
|
| out CfgSvc_ObjRef aCfgSvcObjRef)
|
| raises( ASParamError,
|
| ASInvalidUserDesc,
|
| ASNoSvcHdl,
|
| ASInvalidHandle );
|
|
|
| // changed to a context which is only the Datasource name, and
|
| // the last object reference handle.
|
|
|
| void RegSQLObjRefHdl (
|
| in SQLSvc_ObjRef aSQLSvcObjRef,
|
| in PROCESS_ID_def pidDesc,
|
| in CONNECTION_CONTEXT_def lastContext,
|
| out CONNECTION_CONTEXT_def newContext)
|
| raises (ASParamError,
|
| ASNoSvcHdl,
|
| ASInvalidHandle,
|
| ASRejectRegistry);
|
|
|
| void RegCfgObjRefHdl (
|
| in CfgSvc_ObjRef aCfgSvcObjRef,
|
| in PROCESS_ID_def pidDesc,
|
| in CONNECTION_CONTEXT_def lastContext,
|
| out CONNECTION_CONTEXT_def newContext)
|
| raises (ASParamError,
|
| ASNoSvcHdl,
|
| ASInvalidHandle,
|
| ASRejectRegistry);
|
|
|
| // call is used by a server instance acting on behalf
|
| // of an administrator configuration session (Broadway GUI)
|
| // that has commanded that the running configuratino is to
|
| // be updated with the latest configuration values.
|
| // the call originates from the server instance as a client
|
| // call to ASSvcs. Only does one Datasource at a time,
|
| // sending a sequence doesn't appear to have any performance
|
| // benefits. the calls are async so more than one can be
|
| // stacked up at a time, but only one at a time should be
|
| // making changes to the runtime system. consider a change
|
| // to a list of DS Configs, and a list of DSNms, unsure of payoff
|
|
|
| void RefreshDSCfg (
|
| in DATASOURCE_CFG_def DSCfg )
|
| raises (ASParamError);
|
|
|
| void ResetDSStats (
|
| in SQL_IDENTIFIER_def DSNm )
|
| raises (ASParamError);
|
|
|
| }; // end of interface ASSvc
|
|
|
| }; // end of module odbcas
|
|
|
| #endif
|