Dryad/DryadYarnBridge/yarndryadbridge.cpp

61 lines
2.2 KiB
C++

/*
Copyright (c) Microsoft Corporation
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
THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF
TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions and
limitations under the License.
*/
#pragma unmanaged
#include "stdafx.h"
#include "yarndryadbridge.h"
#include "YarnAppMasterManaged.h"
// #pragma managed
// push unmanaged state on to stack and set managed state
#pragma managed(push, on)
void __stdcall SendVertexState(int vertexId, int state, const char *nodeName)
{
String^ nodeNameString = gcnew String(nodeName);
//s_bridge->SendVertexState(vertexId, state);
//System::Console::Error->WriteLine("\nIn managed function.");
//System::Console::Error->WriteLine("YarnDryadBridge: Vertex Id: {0} State: {1} NodeName: '{2}'", vertexId, state, nodeNameString);
Microsoft::Research::Dryad::YarnBridge::AMInstance::UpdateProcess(vertexId, state, nodeNameString);
//printf("Vertex Id: %I64d, State: %d\n", vertexId, state);
}
// #pragma unmanaged
#pragma managed(pop)
void JNICALL Java_com_microsoft_research_TestLib_SendVertexState(JNIEnv *env, jobject obj, jint vertexId, jint state, jstring nodeName)
{
const char* nodeNameCopy = (const char*)(env->GetStringUTFChars(nodeName, NULL));
SendVertexState((int) vertexId, (int) state, nodeNameCopy);
env->ReleaseStringUTFChars(nodeName, nodeNameCopy);
//printf("Vertex Id: %d, State: %d\n", vertexId, state);
}
void JNICALL Java_com_microsoft_research_DryadAppMaster_SendVertexState(JNIEnv *env, jobject obj, jint vertexId, jint state, jstring nodeName)
{
const char* nodeNameCopy = (const char*)(env->GetStringUTFChars(nodeName, NULL));
SendVertexState((int) vertexId, (int) state, nodeNameCopy);
env->ReleaseStringUTFChars(nodeName, nodeNameCopy);
}