本文整理汇总了C++中ARGS_TYPE::Length方法的典型用法代码示例。如果您正苦于以下问题:C++ ARGS_TYPE::Length方法的具体用法?C++ ARGS_TYPE::Length怎么用?C++ ARGS_TYPE::Length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ARGS_TYPE
的用法示例。
在下文中一共展示了ARGS_TYPE::Length方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WriteRectangleValue
METHOD_RETURN_TYPE DictionaryContextDriver::WriteRectangleValue(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
// can accept array or four numbers
if( (args.Length() != 1 && args.Length() != 4) ||
(args.Length() == 1 && !args[0]->IsArray()) ||
(args.Length() == 4 && (!args[0]->IsNumber() || !args[1]->IsNumber() || !args[2]->IsNumber() || !args[3]->IsNumber())))
{
THROW_EXCEPTION("Wrong arguments, provide an array of 4 numbers, or 4 numbers");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
DictionaryContextDriver* driver = ObjectWrap::Unwrap<DictionaryContextDriver>(args.This());
if(!driver->DictionaryContextInstance)
{
THROW_EXCEPTION("dictinoarycontext object not initialized, create using objectscontext.startDictionary");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() == 1)
{
// array version. verify that there are 4 numbers
if(args[0]->ToObject()->Get(NEW_STRING("length"))->ToObject()->Uint32Value() != 4)
{
THROW_EXCEPTION("Wrong arguments, provide an array of 4 numbers, or 4 numbers");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
driver->DictionaryContextInstance->WriteRectangleValue(PDFRectangle(
args[0]->ToObject()->Get(0)->ToNumber()->Value(),
args[0]->ToObject()->Get(1)->ToNumber()->Value(),
args[0]->ToObject()->Get(2)->ToNumber()->Value(),
args[0]->ToObject()->Get(3)->ToNumber()->Value()));
}
else
{
// 4 numbers version
driver->DictionaryContextInstance->WriteRectangleValue(PDFRectangle(
args[0]->ToNumber()->Value(),
args[1]->ToNumber()->Value(),
args[2]->ToNumber()->Value(),
args[3]->ToNumber()->Value()));
}
SET_FUNCTION_RETURN_VALUE(args.This());
}
示例2: GetCopiedObjectID
METHOD_RETURN_TYPE DocumentCopyingContextDriver::GetCopiedObjectID(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
DocumentCopyingContextDriver* copyingContextDriver = ObjectWrap::Unwrap<DocumentCopyingContextDriver>(args.This());
if(!copyingContextDriver->CopyingContext)
{
THROW_EXCEPTION("copying context object not initialized, create using pdfWriter.createPDFCopyingContext or PDFWriter.createPDFCopyingContextForModifiedFile");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() != 1 ||
!args[0]->IsNumber())
{
THROW_EXCEPTION("Wrong arguments. provide 1 arugment, an object ID to check");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
EStatusCodeAndObjectIDType result = copyingContextDriver->CopyingContext->GetCopiedObjectID(args[0]->ToNumber()->Uint32Value());
if(result.first != eSuccess)
THROW_EXCEPTION("Unable to find element");
SET_FUNCTION_RETURN_VALUE(NEW_NUMBER(result.second));
}
示例3: CreateReader
METHOD_RETURN_TYPE CreateReader(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
Handle<Value> instance = PDFReaderDriver::GetNewInstance(args);
PDFReaderDriver* driver = ObjectWrap::Unwrap<PDFReaderDriver>(instance->ToObject());
if (args.Length() != 1 || (!args[0]->IsString() && !args[0]->IsObject()))
{
THROW_EXCEPTION("Wrong arguments, provide 1 string - path to file read, or a read stream object");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
PDFHummus::EStatusCode status;
if(args[0]->IsObject())
status = driver->StartPDFParsing(args[0]->ToObject());
else
status = driver->StartPDFParsing(std::string(*String::Utf8Value(args[0]->ToString())));
if(status != PDFHummus::eSuccess)
{
THROW_EXCEPTION("Unable to start parsing PDF file");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
SET_FUNCTION_RETURN_VALUE(instance);
}
示例4: CopyDirectObjectWithDeepCopy
METHOD_RETURN_TYPE DocumentCopyingContextDriver::CopyDirectObjectWithDeepCopy(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
DocumentCopyingContextDriver* copyingContextDriver = ObjectWrap::Unwrap<DocumentCopyingContextDriver>(args.This());
if(!copyingContextDriver->CopyingContext)
{
THROW_EXCEPTION("copying context object not initialized, create using pdfWriter.createPDFCopyingContext or PDFWriter.createPDFCopyingContextForModifiedFile");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() != 1) // need to sometimes check that this is a PDFObject
{
THROW_EXCEPTION("Wrong arguments. provide 1 arugment, which is PDFObject to copy");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
EStatusCodeAndObjectIDTypeList result = copyingContextDriver->CopyingContext->CopyDirectObjectWithDeepCopy(ObjectWrap::Unwrap<PDFObjectDriver>(args[0]->ToObject())->GetObject());
if(result.first != eSuccess)
THROW_EXCEPTION("Unable to copy object, parhaps the object id is wrong");
Local<Array> resultObjectIDs = NEW_ARRAY((unsigned int)result.second.size());
unsigned int index = 0;
ObjectIDTypeList::iterator it = result.second.begin();
for(; it != result.second.end();++it)
resultObjectIDs->Set(NEW_NUMBER(index++),NEW_NUMBER(*it));
SET_FUNCTION_RETURN_VALUE(resultObjectIDs);
}
示例5: CopyDirectObjectAsIs
METHOD_RETURN_TYPE DocumentCopyingContextDriver::CopyDirectObjectAsIs(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
DocumentCopyingContextDriver* copyingContextDriver = ObjectWrap::Unwrap<DocumentCopyingContextDriver>(args.This());
if(!copyingContextDriver->CopyingContext)
{
THROW_EXCEPTION("copying context object not initialized, create using pdfWriter.createPDFCopyingContext or PDFWriter.createPDFCopyingContextForModifiedFile");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() != 1) // need to sometimes check that this is a PDFObject
{
THROW_EXCEPTION("Wrong arguments. provide 1 arugment, which is PDFObject to copy");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
EStatusCode status = copyingContextDriver->CopyingContext->CopyDirectObjectAsIs(ObjectWrap::Unwrap<PDFObjectDriver>(args[0]->ToObject())->GetObject());
if(status != eSuccess)
THROW_EXCEPTION("Unable to merge page index to form. parhaps the page index is wrong");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
示例6: MergePDFPageToFormXObject
METHOD_RETURN_TYPE DocumentCopyingContextDriver::MergePDFPageToFormXObject(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
DocumentCopyingContextDriver* copyingContextDriver = ObjectWrap::Unwrap<DocumentCopyingContextDriver>(args.This());
if(!copyingContextDriver->CopyingContext)
{
THROW_EXCEPTION("copying context object not initialized, create using pdfWriter.createPDFCopyingContext");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() != 2 ||
!FormXObjectDriver::HasInstance(args[0]) ||
!args[1]->IsNumber())
{
THROW_EXCEPTION("Wrong arguments. provide 2 arugments, where the first is a form, and the second is a page index to merge");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
EStatusCode status = copyingContextDriver->CopyingContext->MergePDFPageToFormXObject(
ObjectWrap::Unwrap<FormXObjectDriver>(args[0]->ToObject())->FormXObject,
args[1]->ToNumber()->Uint32Value());
if(status != eSuccess)
THROW_EXCEPTION("Unable to merge page index to form. parhaps the page index is wrong");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
示例7: AppendPDFPageFromPDF
METHOD_RETURN_TYPE DocumentCopyingContextDriver::AppendPDFPageFromPDF(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
DocumentCopyingContextDriver* copyingContextDriver = ObjectWrap::Unwrap<DocumentCopyingContextDriver>(args.This());
if(!copyingContextDriver->CopyingContext)
{
THROW_EXCEPTION("copying context object not initialized, create using pdfWriter.createPDFCopyingContext");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() != 1 ||
!args[0]->IsNumber())
{
THROW_EXCEPTION("Wrong arguments. provide a page index to append");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
EStatusCodeAndObjectIDType result = copyingContextDriver->CopyingContext->AppendPDFPageFromPDF(args[0]->ToNumber()->Uint32Value());
if(result.first != eSuccess)
{
THROW_EXCEPTION("Unable to append page. parhaps the page index is wrong");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
Local<Number> idValue = NEW_NUMBER(result.second);
SET_FUNCTION_RETURN_VALUE(idValue);
}
示例8: WriteLiteralStringValue
METHOD_RETURN_TYPE DictionaryContextDriver::WriteLiteralStringValue(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
if(!(args.Length() == 1) ||
(!args[0]->IsString() && !args[0]->IsArray()))
{
THROW_EXCEPTION("wrong arguments, pass 1 argument that is a literal string (string) or an array");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
DictionaryContextDriver* driver = ObjectWrap::Unwrap<DictionaryContextDriver>(args.This());
if(!driver->DictionaryContextInstance)
{
THROW_EXCEPTION("dictinoarycontext object not initialized, create using objectscontext.startDictionary");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args[0]->IsArray())
{
std::string string;
unsigned long arrayLength = (args[0]->ToObject()->Get(NEW_STRING("length")))->ToObject()->Uint32Value();
for(unsigned long i=0;i<arrayLength;++i)
string.push_back((unsigned char)args[0]->ToObject()->Get(i)->ToNumber()->Value());
driver->DictionaryContextInstance->WriteLiteralStringValue(string);
}
else
{
driver->DictionaryContextInstance->WriteLiteralStringValue(*String::Utf8Value(args[0]->ToString()));
}
SET_FUNCTION_RETURN_VALUE(args.This());
}
示例9: WriteNameValue
METHOD_RETURN_TYPE DictionaryContextDriver::WriteNameValue(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
if(!(args.Length() == 1) ||
!args[0]->IsString())
{
THROW_EXCEPTION("Wrong arguments, provide a string to write");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
DictionaryContextDriver* driver = ObjectWrap::Unwrap<DictionaryContextDriver>(args.This());
if(!driver->DictionaryContextInstance)
{
THROW_EXCEPTION("dictinoarycontext object not initialized, create using objectscontext.startDictionary");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
driver->DictionaryContextInstance->WriteNameValue(*String::Utf8Value(args[0]->ToString()));
SET_FUNCTION_RETURN_VALUE(args.This());
}
示例10: Read
METHOD_RETURN_TYPE ByteReaderDriver::Read(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
// k. i'll just read the number of bytes and return an array of them
if(args.Length() != 1 ||
!args[0]->IsNumber())
{
THROW_EXCEPTION("Wrong arguments. pass the number of bytes to read");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
ByteReaderDriver* element = ObjectWrap::Unwrap<ByteReaderDriver>(args.This());
IOBasicTypes::LongBufferSizeType bufferSize = args[0]->ToNumber()->Uint32Value();
Byte* buffer = new Byte[bufferSize];
bufferSize = element->mInstance->Read(buffer,(int)bufferSize); // reading int cause that's the maximum that can read (use should read till notended anyways)
Local<Array> outBuffer = NEW_ARRAY((int)bufferSize);
for(LongBufferSizeType i=0;i<bufferSize;++i)
outBuffer->Set(NEW_NUMBER(i), NEW_NUMBER(buffer[i]));
delete[] buffer;
SET_FUNCTION_RETURN_VALUE(outBuffer);
}
示例11: CopyNewObjectsForDirectObject
METHOD_RETURN_TYPE DocumentCopyingContextDriver::CopyNewObjectsForDirectObject(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
DocumentCopyingContextDriver* copyingContextDriver = ObjectWrap::Unwrap<DocumentCopyingContextDriver>(args.This());
if(!copyingContextDriver->CopyingContext)
{
THROW_EXCEPTION("copying context object not initialized, create using pdfWriter.createPDFCopyingContext or PDFWriter.createPDFCopyingContextForModifiedFile");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(args.Length() != 1 ||
!args[0]->IsArray())
{
THROW_EXCEPTION("Wrong arguments. provide 1 arugment, which is an array of object IDs");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
ObjectIDTypeList objectIDs;
Handle<Object> objectIDsArray = args[0]->ToObject();
unsigned int length = objectIDsArray->Get(v8::NEW_STRING("length"))->ToObject()->Uint32Value();
for(unsigned int i=0;i <length;++i)
objectIDs.push_back(objectIDsArray->Get(i)->ToNumber()->Uint32Value());
EStatusCode status = copyingContextDriver->CopyingContext->CopyNewObjectsForDirectObject(objectIDs);
if(status != eSuccess)
THROW_EXCEPTION("Unable to copy elements");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
示例12: OpenFile
METHOD_RETURN_TYPE InputFileDriver::OpenFile(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
if(args.Length() != 1 || !args[0]->IsString())
{
THROW_EXCEPTION("wrong arguments. please provide a string for the file path");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
InputFileDriver* driver = ObjectWrap::Unwrap<InputFileDriver>(args.This());
if(!driver)
{
THROW_EXCEPTION("no driver created...please create one through Hummus");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
if(driver->OpenFile(*String::Utf8Value(args[0]->ToString())) != PDFHummus::eSuccess)
{
THROW_EXCEPTION("can't open file. make sure path exists");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
示例13: QueryObject
METHOD_RETURN_TYPE PDFDictionaryDriver::QueryObject(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
if(args.Length() != 1 || !args[0]->IsString())
{
THROW_EXCEPTION("wrong arguments, pass 1 argument which is a string key");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
std::string key = *String::Utf8Value(args[0]->ToString());
PDFDictionaryDriver* driver = ObjectWrap::Unwrap<PDFDictionaryDriver>(args.This());
if(!driver->TheObject->Exists(key))
{
THROW_EXCEPTION("key not found");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
RefCountPtr<PDFObject> anObject = driver->TheObject->QueryDirectObject(key);
Handle<Value> result = PDFObjectDriver::CreateDriver(anObject.GetPtr());
SET_FUNCTION_RETURN_VALUE(result);
}
示例14: Write
METHOD_RETURN_TYPE ByteWriterWithPositionDriver::Write(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
// k. i'll just read the number of bytes and return an array of them
if(args.Length() != 1 ||
!args[0]->IsArray())
{
THROW_EXCEPTION("Wrong arguments. pass an array of bytes to write");
SET_FUNCTION_RETURN_VALUE(UNDEFINED);
}
ByteWriterWithPositionDriver* element = ObjectWrap::Unwrap<ByteWriterWithPositionDriver>(args.This());
int bufferSize = args[0]->ToObject()->Get(NEW_STRING("length"))->ToObject()->Uint32Value();
Byte* buffer = new Byte[bufferSize];
for(int i=0;i<bufferSize;++i)
buffer[i] = args[0]->ToObject()->Get(i)->ToObject()->Uint32Value();
bufferSize = (int)element->mInstance->Write(buffer,bufferSize);
delete[] buffer;
SET_FUNCTION_RETURN_VALUE(NEW_NUMBER(bufferSize));
}
示例15: OpenFile
METHOD_RETURN_TYPE InputFileDriver::OpenFile(const ARGS_TYPE& args)
{
CREATE_ISOLATE_CONTEXT;
CREATE_ESCAPABLE_SCOPE;
if(args.Length() != 1 || !args[0]->IsString())
{
THROW_EXCEPTION("wrong arguments. please provide a string for the file path");
SET_FUNCTION_RETURN_VALUE(UNDEFINED)
}