本文整理汇总了C++中ValueList类的典型用法代码示例。如果您正苦于以下问题:C++ ValueList类的具体用法?C++ ValueList怎么用?C++ ValueList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ValueList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AppURLToPath
void AppBinding::AppURLToPath(const ValueList& args, SharedValue result)
{
//FIXME - use FileUtils for this... so we can a common implementation
result->SetString("");
if (args.size() < 0 || !args.at(0)->IsString())
return;
//FIXME: take into consider the appid which is in the host position of the URL
std::string url = std::string(args.at(0)->ToString());
if (url.find("app://") == 0)
{
url = url.substr(6, url.length() - 6);
}
std::string path = Poco::Environment::get("KR_HOME", "");
result->SetString(std::string(path + KR_PATH_SEP + kAppURLPrefix + KR_PATH_SEP + url).c_str());
}
示例2: capture
void SDLIntegration::capture(ValueList& axisValues, ValueList& buttonValues) const
{
if (_joystick)
{
SDL_JoystickUpdate();
axisValues.resize(_numAxes);
for(int ai=0; ai<_numAxes; ++ai)
{
axisValues[ai] = SDL_JoystickGetAxis(_joystick, ai);
}
buttonValues.resize(_numButtons);
for(int bi=0; bi<_numButtons; ++bi)
{
buttonValues[bi] = SDL_JoystickGetButton(_joystick, bi);
}
}
}
示例3: StdIn
void AppBinding::StdIn(const ValueList& args, KValueRef result)
{
args.VerifyException("stdin", "?ss");
std::string input;
char delimiter = '\n';
if (args.size() >= 1)
{
std::cout << args.GetString(0);
}
if (args.size() >= 2)
{
delimiter = args.GetString(1).at(0);
}
getline(std::cin, input, delimiter);
result->SetString(input);
}
示例4: if
void TCPSocketBinding::OnRead(const Poco::AutoPtr<ReadableNotification>& n)
{
std::string eprefix = "TCPSocketBinding::OnRead: ";
try
{
// Always read bytes, so that the tubes get cleared.
char data[BUFFER_SIZE + 1];
int size = socket.receiveBytes(&data, BUFFER_SIZE);
bool read_complete = (size <= 0);
if (read_complete && !this->onReadComplete.isNull())
{
ValueList args;
ti_host->InvokeMethodOnMainThread(this->onReadComplete, args, false);
}
else if (!read_complete && !this->onRead.isNull())
{
data[size] = '\0';
ValueList args;
args.push_back(Value::NewString(data));
ti_host->InvokeMethodOnMainThread(this->onRead, args, false);
}
}
catch(ValueException& e)
{
std::cerr << eprefix << *(e.GetValue()->DisplayString()) << std::endl;
ValueList args(Value::NewString(e.ToString()));
ti_host->InvokeMethodOnMainThread(this->onError, args, false);
}
catch(Poco::Exception &e)
{
std::cerr << eprefix << e.displayText() << std::endl;
ValueList args(Value::NewString(e.displayText()));
ti_host->InvokeMethodOnMainThread(this->onError, args, false);
}
catch(...)
{
std::cerr << eprefix << "Unknown exception" << std::endl;
ValueList args(Value::NewString("Unknown exception"));
ti_host->InvokeMethodOnMainThread(this->onError, args, false);
}
}
示例5: FieldByName
void ResultSetBinding::FieldByName(const ValueList& args, KValueRef result)
{
result->SetNull();
if (!rs.isNull())
{
args.VerifyException("fieldByName", "s");
std::string name = args.at(0)->ToString();
size_t count = rs->columnCount();
for (size_t i = 0; i<count; i++)
{
const std::string &str = rs->columnName(i);
if (str == name)
{
TransformValue(i,result);
break;
}
}
}
}
示例6: Substr
void Blob::Substr(const ValueList& args, SharedValue result)
{
// This method now follows the spec located at:
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/substr
args.VerifyException("Blob.substr", "i,?i");
std::string target = "";
if (this->length > 0)
{
target = this->buffer;
}
int start = args.GetInt(0);
if (start > 0 && start >= this->length)
{
result->SetString("");
return;
}
if (start < 0 && (-1*start) > this->length)
{
start = 0;
}
else if (start < 0)
{
start = this->length + start;
}
int length = this->length - start;
if (args.size() > 1)
{
length = args.GetInt(1);
}
if (length <= 0)
{
result->SetString("");
return;
}
std::string r = target.substr(start, length);
result->SetString(r);
}
示例7: operator
void Compiler::operator()( ValueListMore & values,
boost::optional< Value > & value_first,
ValueList & values_middle,
boost::optional< Value > & value_last ) const
{
if ( value_first )
{
Value & value = *value_first;
values.data_.emplace_back( std::move( value ) );
values.has_front_any_ = false;
}
std::move( values_middle.begin(), values_middle.end(),
std::back_inserter( values.data_ ) );
if ( value_last )
{
Value & value = *value_last;
values.data_.emplace_back( std::move( value ) );
values.has_back_any_ = false;
}
}
示例8: PostMessage
void Worker::PostMessage(const ValueList& args, SharedValue result)
{
// store the message in our queue (waiting for the lock) and
// then signal the thread to wake up to process the message
SharedValue message = args.at(0);
{
Poco::ScopedLock<Poco::Mutex> lock(mutex);
this->messages.push_back(message);
}
this->condition.signal();
}
示例9: AddConnectivityListener
void NetworkBinding::AddConnectivityListener(const ValueList& args, SharedValue result)
{
ArgUtils::VerifyArgsException("addConnectivityListener", args, "m");
SharedBoundMethod target = args.at(0)->ToMethod();
Listener listener = Listener();
listener.id = this->next_listener_id++;
listener.callback = target;
this->listeners.push_back(listener);
result->SetInt(listener.id);
}
示例10: _LastIndexOf
void Bytes::_LastIndexOf(const ValueList& args, KValueRef result)
{
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/lastIndexOf
args.VerifyException("Bytes.lastIndexOf", "s,?i");
std::string target(this->AsString());
int start = args.GetInt(1, target.length() + 1);
if (start < 0) start = 0;
size_t pos = target.rfind(args.GetString(0), start);
if (pos == std::string::npos)
{
// No matches found
result->SetInt(-1);
}
else
{
result->SetInt(pos);
}
}
示例11: RemoveConnectivityListener
void NetworkBinding::RemoveConnectivityListener(
const ValueList& args,
SharedValue result)
{
args.VerifyException("removeConnectivityListener", "n");
int id = args.at(0)->ToInt();
std::vector<Listener>::iterator it = this->listeners.begin();
while (it != this->listeners.end())
{
if ((*it).id == id)
{
this->listeners.erase(it);
result->SetBool(true);
return;
}
it++;
}
result->SetBool(false);
}
示例12: list_flag_value_complete
// Convert a DATAList flag into a long integer value
long list_flag_value_complete( DATAExpression *flag, struct flag_type *flag_table ) {
ValueList *list = flag->eval().asList();
char flagString[MAX_STRING_LENGTH];
flagString[0] = '\0';
if ( list->size == 0 || ( list->size == 1 && !str_cmp( "none", list->elems[0].asStr() ) ) )
return 0;
// Convert the list into a string
for ( int i = 0; i < list->size; i++ ) {
strcat( flagString, list->elems[i].asStr() );
if ( i < list->size-1 )
strcat( flagString, " " );
}
list->explicit_free();
// Send the string to flag_value
return flag_value_complete( flag_table, flagString );
}
示例13: ImportScripts
void WorkerContext::ImportScripts(const ValueList &args, SharedValue result)
{
Logger *logger = Logger::Get("WorkerContext");
SharedKMethod appURLToPath = host->GetGlobalObject()->GetNS("App.appURLToPath")->ToMethod();
AutoPtr<Worker> _worker = worker.cast<Worker>();
JSGlobalContextRef context = KJSUtil::GetGlobalContext(_worker->GetGlobalObject());
for (size_t c = 0; c < args.size(); c++)
{
// first convert the path to a full URL file path
ValueList a;
a.push_back(args.at(c));
SharedValue result = appURLToPath->Call(a);
const char *path = result->ToString();
logger->Debug("attempting to import worker script = %s",path);
KJSUtil::EvaluateFile(context, (char*)path);
}
}
示例14: _SetSubmenu
void MenuItem::_SetSubmenu(const ValueList& args, KValueRef result)
{
args.VerifyException("setSubmenu", "o|0");
AutoPtr<Menu> newSubmenu = NULL;
if (args.at(0)->IsObject())
{
KObjectRef o = args.at(0)->ToObject();
o = KObject::Unwrap(o);
newSubmenu = o.cast<Menu>();
}
if (!newSubmenu.isNull() && newSubmenu->ContainsItem(this))
{
throw ValueException::FromString("Tried to construct a recursive menu");
}
this->submenu = newSubmenu;
this->SetSubmenuImpl(newSubmenu);
}
示例15: Write
void FileStream::Write(const ValueList& args, SharedValue result)
{
char *text = NULL;
int size = 0;
if (args.at(0)->IsObject())
{
SharedKObject b = args.at(0)->ToObject();
SharedPtr<Blob> blob = b.cast<Blob>();
if (!blob.isNull())
{
text = (char*)blob->Get();
size = (int)blob->Length();
}
}
else if (args.at(0)->IsString())
{
text = (char*)args.at(0)->ToString();
}
else if (args.at(0)->IsInt())
{
std::stringstream ostr;
ostr << args.at(0)->ToInt();
text = (char*)ostr.str().c_str();
size = ostr.str().length();
}
else if (args.at(0)->IsDouble())
{
std::stringstream ostr;
ostr << args.at(0)->ToDouble();
text = (char*)ostr.str().c_str();
size = ostr.str().length();
}
if (size==0)
{
size = strlen(text);
}
if (text == NULL)
{
result->SetBool(false);
return;
}
if (size <= 0)
{
result->SetBool(false);
return;
}
Write(text,size);
result->SetBool(true);
}