external_function_parameter.h
Go to the documentation of this file.
00001 /*
00002  * Copyright 2006-2008 The FLWOR Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 #ifndef ZORBA_EXTERNAL_FUNCTION_PARAM_API_H
00017 #define ZORBA_EXTERNAL_FUNCTION_PARAM_API_H
00018 
00019 namespace zorba {
00020 
00021 /**
00022  * Instances of subclasses of this abstract class may
00023  * be used as parameters to the DynamicContext::addExternalFunctionParameter
00024  * function. This is useful in the implementation of
00025  * external modules/functions in order to store information
00026  * between several invocations of the same function.
00027  *
00028  * The destroy method is called by Zorba at the end
00029  * of the execution of an XQuery program, when the corresponding
00030  * DynamicContext is destroyed.
00031  *
00032  */
00033 class ExternalFunctionParameter
00034 {
00035 public:
00036   /**
00037    * This function is invoked by Zorba when the DynamicContext
00038    * that contains the instance is destroyed. This allows
00039    * the user to release resources. In the simplest case,
00040    * an implementation might simply call "delete this" to
00041    * destroy the object.
00042    */
00043   virtual void destroy() throw() = 0;
00044 
00045   /**
00046    * Virtual destructor with an empty implementation
00047    */
00048   virtual ~ExternalFunctionParameter() {}
00049 };
00050 
00051 }
00052 
00053 #endif
blog comments powered by Disqus