Пример #1
0
jstring Java_org_apache_nifi_processor_JniFlowFile_getUUIDStr(JNIEnv *env, jobject obj) {
  minifi::jni::JniFlowFile *ptr = minifi::jni::JVMLoader::getInstance()->getReference<minifi::jni::JniFlowFile>(env, obj);

  auto ff = ptr->get();
  THROW_IF_NULL(ff, env, NO_FF_OBJECT);
  return env->NewStringUTF(ff->getUUIDStr().c_str());
}
Пример #2
0
jlong Java_org_apache_nifi_processor_JniFlowFile_getSize(JNIEnv *env, jobject obj) {
  minifi::jni::JniFlowFile *ptr = minifi::jni::JVMLoader::getInstance()->getReference<minifi::jni::JniFlowFile>(env, obj);
  auto ff = ptr->get();
  THROW_IF_NULL(ff, env, NO_FF_OBJECT);
  jlong val = ff->getSize();
  return val;
}
STDMETHODIMP CAdRotator::get_TargetFrame(BSTR * pVal)
{
	HRESULT rc = E_FAIL;
	USES_CONVERSION;

	try
	{
		if ( pVal )
		{
			CLock l(m_cs);
			if ( *pVal )
			{
				::SysFreeString( *pVal );
			}
			*pVal = T2BSTR( m_strTargetFrame.c_str() );
			THROW_IF_NULL( *pVal );

			rc = S_OK;
		}
		else
		{
			rc = E_POINTER;
		}
	}
	catch ( alloc_err& )
	{
		rc = E_OUTOFMEMORY;
	}
	catch ( ... )
	{
		rc = E_FAIL;
	}
	return rc;
}
Пример #4
0
jstring Java_org_apache_nifi_processor_JniFlowFile_getAttribute(JNIEnv *env, jobject obj, jstring key) {
  minifi::jni::JniFlowFile *ptr = minifi::jni::JVMLoader::getInstance()->getReference<minifi::jni::JniFlowFile>(env, obj);

  auto ff = ptr->get();
  THROW_IF_NULL(ff, env, NO_FF_OBJECT);
  const char *kstr = env->GetStringUTFChars(key, 0);
  std::string value;
  std::string keystr = kstr;
  ff->getAttribute(keystr, value);
  env->ReleaseStringUTFChars(key, kstr);
  return env->NewStringUTF(value.c_str());
}
Пример #5
0
SOM_Scope void  SOMLINK CMLinkSourceIteratorInitCMLinkSourceIterator(CMLinkSourceIterator *somSelf, Environment *ev,
                CMDraft* draft)
{
    CMLinkSourceIteratorData *somThis = CMLinkSourceIteratorGetData(somSelf);
    CMLinkSourceIteratorMethodDebug("CMLinkSourceIterator","InitCMLinkSourceIterator");

#ifdef _NATIVE_EXCEPTIONS_
//      Use C++ native exception
        SOM_TRY
#else
        SOM_CATCH return;
#endif

        /* Moved from somInit. SOM itself sets fields to zero
        _fDraft = kODNULL;
        _fCurrent = kODNULL;
        _fContainer = kODNULL;
        _fProperty = kODNULL;
        _fType = kODNULL;
        _fBuffer = kODNULL;
        _fSize = 0;
        */

        somSelf->InitLinkSourceIterator(ev);

        _fDraft = draft;
        _fContainer = draft->GetCMContainer(ev);

        ODSessionMustHaveCMAllocReserve(_fContainer);

        _fProperty = CMRegisterProperty(_fContainer, kODPropStorageUnitType);
        _fType = CMRegisterType(_fContainer, kODISOStr);

        ODSessionRestoreCMAllocReserve(_fContainer);

        _fSize = ODISOStrLength(kODLinkSource) + 1;
        _fBuffer = ODNewPtr(_fSize, kDefaultHeapID);

        THROW_IF_NULL(_fBuffer);

#ifdef _NATIVE_EXCEPTIONS_
//      Use C++ native exception
        SOM_CATCH_ALL
        SOM_ENDTRY
#endif
}
Пример #6
0
SOM_Scope void
SOMLINK CMLinkSourceIteratorAdd(CMLinkSourceIterator *somSelf,
                                Environment *ev,
                                ODStorageUnitID linkSourceSUID)
{
    CMLinkSourceIteratorData *somThis = CMLinkSourceIteratorGetData(somSelf);
    CMLinkSourceIteratorMethodDebug("CMLinkSourceIterator","Add");

    CMItrNode* entry = new CMItrNode;
    THROW_IF_NULL(entry);

    entry->linkSourceSUID = linkSourceSUID;
    if (_fCMItrList != (CMItrNode*)kODNULL)
    {
      entry->next = _fCMItrList;
    }
    else
    {
      entry->next = (CMItrNode*)kODNULL;
    }
    _fCMItrList = entry;
}
STDMETHODIMP CAdRotator::get_GetAdvertisement(BSTR bstrVirtualPath, BSTR * pVal)
{
	SCODE rc = E_FAIL;
    
	try
	{
		USES_CONVERSION;

		CContext cxt;
		rc = cxt.Init( CContext::get_Server );
		if ( !FAILED(rc) )
		{
			CComBSTR bstrPhysicalPath;
			// determine the physical path
			if ( ( rc = cxt.Server()->MapPath( bstrVirtualPath, &bstrPhysicalPath ) ) == S_OK )
			{
				_TCHAR* szPath = OLE2T( bstrPhysicalPath );

				CAdFilePtr pAdFile = AdFile( szPath );
				
				if ( pAdFile.IsValid() )
				{
					// refresh the ad file (make sure it's up to date)
					pAdFile->Refresh();

					// block all writers
					CReader rdr( *pAdFile );

					// if the border hasn't been set, use the default from the ad file
					short nBorder;
					if ( m_nBorder < 0 )
					{
						nBorder = pAdFile->Border();
					}
					else
					{
						nBorder = m_nBorder;
					}

					CAdDescPtr pAd = pAdFile->RandomAd();
					if ( pAd.IsValid() )
					{
						// write out the HTML line for this ad
						StringOutStream ss;

						if ( m_bClickable && ( pAd->m_strLink.size() > 1 ) )
						{
							// use the href format
							ss	<< _T("<A HREF=\"") << pAdFile->Redirector()
								<< _T("?url=") << pAd->m_strLink
								<< _T("&image=") << pAd->m_strGif
								<< _T("\" ") << m_strTargetFrame << _T(">");
						}
						
						// now fill in the rest
						ss	<< _T("<IMG SRC=\"") << pAd->m_strGif
							<< _T("\" ALT=\"") << pAd->m_strAlt
							<< _T("\" WIDTH=") << pAdFile->Width()
							<< _T(" HEIGHT=") << pAdFile->Height();

						if ( pAdFile->HSpace() != CAdFile::defaultHSpace )
						{
							ss << _T(" HSPACE=") << pAdFile->HSpace();
						}
						if ( pAdFile->VSpace() != CAdFile::defaultVSpace )
						{
							ss << _T(" VSPACE=") << pAdFile->VSpace();
						}

						ss << _T(" BORDER=") << nBorder << _T(">");

						if ( m_bClickable && ( pAd->m_strLink.size() > 1 ) )
						{
							// put the trailing tag on
							ss << _T("</A>");
						}

						String str = ss.toString();
						
						if ( pVal )
						{
							if ( *pVal )
							{
								::SysFreeString( *pVal );
							}
							*pVal = T2BSTR( str.c_str() );
							THROW_IF_NULL( *pVal );
							rc = S_OK;
						}
						else
						{
							rc = E_POINTER;
						}
					}
				}
			}
		}
		else
		{
			_ASSERT(0);
			RaiseException( IDS_ERROR_NOSVR );
		}   // end if got server
	}
	catch ( alloc_err& )
	{
		rc = E_OUTOFMEMORY;
	}
	catch ( ... )
	{
		rc = E_FAIL;
	}
	return rc;
}