blob: 2dfbcb5f3485527aa8143ad270a4a49491646d2c [file] [log] [blame]
/*
* Copyright 2003-2004 The Apache Software Foundation.
// (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
*
* 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.
*
*
* @author Roshan Weerasuriya (roshan@opensource.lk, roshanw@jkcs.slt.lk)
*
*/
#include "THandler.h"
#include <axis/GDefine.hpp>
#include <axis/IHandlerSoapSerializer.hpp>
#include <axis/IHandlerSoapDeSerializer.hpp>
#include <axis/BasicNode.hpp>
#include <iostream>
THandler::THandler()
{
m_pOption = NULL;
m_sEmpty = "";
}
THandler::~THandler()
{
}
const string& THandler::getOption(const string& sArg)
{
map<string, string>::const_iterator it = m_pOption->find(sArg);
if (it != m_pOption->end())
{
return (*it).second;
}
return m_sEmpty;
}
void THandler::setOptionList(const map<string, string>* OptionList)
{
m_pOption = OptionList;
}
int THandler::invoke(void *pvIMsg)
{
IMessageData *pIMsg = (IMessageData*) pvIMsg;
if(pIMsg->isPastPivot()) {
/*this is a response*/
} else {
/*this is a request*/
IHandlerSoapSerializer* pISZ;
pIMsg->getSoapSerializer(&pISZ);
IHeaderBlock* pIHeaderBlock= pISZ->createHeaderBlock();
//pIHeaderBlock->setLocalName("testClientHandlerHeader");
//pIHeaderBlock->setUri("http://opensource.lk/testClientHandlerHeader/");
pIHeaderBlock->setLocalName("echoMeString");
pIHeaderBlock->setURI("http://soapinterop.org/echoheader/");
const AxisChar* pachHeaderVal = "test Header Val";
BasicNode* pBasicNode = pIHeaderBlock->createChild(CHARACTER_NODE);
pBasicNode->setValue(pachHeaderVal);
pIHeaderBlock->addChild(pBasicNode);
}
return AXIS_SUCCESS;
}
void THandler::onFault(void *pvIMsg)
{
}
int THandler::init()
{
//do any initialization, resetting of values
return AXIS_SUCCESS;
}
int THandler::fini()
{
//do any finalizatoin
return AXIS_SUCCESS;
}