1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /*##############################################################################
- HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®.
- Licensed 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.
- ############################################################################## */
- #include <time.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- #include "examplelib.hpp"
- #define EXAMPLELIB_VERSION "EXAMPLELIB 1.0.00"
- static const char * HoleDefinition = NULL;
- static const char * EclDefinition =
- "export ExampleLib := SERVICE\n"
- " string EchoString(const string src) : c, pure,fold,entrypoint='elEchoString'; \n"
- "END;";
- EXAMPLELIB_API bool getECLPluginDefinition(ECLPluginDefinitionBlock *pb)
- {
- // Warning: This function may be called without the plugin being loaded fully.
- // It should not make any library calls or assume that dependent modules
- // have been loaded or that it has been initialised.
- //
- // Specifically: "The system does not call DllMain for process and thread
- // initialization and termination. Also, the system does not load
- // additional executable modules that are referenced by the specified module."
- if (pb->size != sizeof(ECLPluginDefinitionBlock))
- return false;
- pb->magicVersion = PLUGIN_VERSION;
- pb->version = EXAMPLELIB_VERSION " $Revision: 62376 $";
- pb->moduleName = "lib_examplelib";
- pb->ECL = EclDefinition;
- pb->Hole = HoleDefinition;
- pb->flags = PLUGIN_IMPLICIT_MODULE;
- pb->description = "ExampleLib example services library";
- return true;
- }
- namespace nsExamplelib {
- IPluginContext * parentCtx = NULL;
- }
- using namespace nsExamplelib;
- EXAMPLELIB_API void setPluginContext(IPluginContext * _ctx) { parentCtx = _ctx; }
- //-------------------------------------------------------------------------------------------------------------------------------------------
- EXAMPLELIB_API void EXAMPLELIB_CALL elEchoString(unsigned & tgtLen, char * & tgt, unsigned srcLen, const char * src)
- {
- tgt = (char *)CTXMALLOC(parentCtx, srcLen);
- memcpy(tgt,src,srcLen);
- tgtLen = srcLen;
- }
|