view Resources/Samples/Plugins/Basic/Plugin.c @ 896:c4053ac5db04 plugins

better plugni api
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 17 Jun 2014 09:57:02 +0200
parents 690aeb4cb899
children bafc9d592632
line wrap: on
line source

/**
 * Orthanc - A Lightweight, RESTful DICOM Store
 * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
 * Belgium
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 **/


#include <OrthancCPlugin.h>

#include <string.h>
#include <stdio.h>

static const OrthancPluginContext* context = NULL;


ORTHANC_PLUGINS_API int32_t Callback(OrthancPluginRestOutput* output,
                                     OrthancPluginHttpMethod method,
                                     const char* url,
                                     const char* body,
                                     uint32_t bodySize)
{
  char buffer[1024];
  sprintf(buffer, "Callback on URL [%s]\n", url);
  context->LogInfo(buffer);
  context->AnswerBuffer(output, buffer, strlen(buffer), "text/plain");
  return 1;
}


ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(const OrthancPluginContext* c)
{
  char info[1024];

  context = c;
  context->LogWarning("Plugin is initializing");

  sprintf(info, "The version of Orthanc is '%s'", context->orthancVersion);
  context->LogInfo(info);

  context->RegisterRestCallback(c, "/plu.*/hello", Callback);

  return 0;
}


ORTHANC_PLUGINS_API void OrthancPluginFinalize()
{
  context->LogWarning("Plugin is finalizing");
}


ORTHANC_PLUGINS_API const char* OrthancPluginGetName()
{
  return "sample";
}


ORTHANC_PLUGINS_API const char* OrthancPluginGetVersion()
{
  return "1.0";
}