Vp wait: Difference between revisions
Jump to navigation
Jump to search
Roy Curtis (talk | contribs) + thread info |
m updated syntax highlighting tags |
||
Line 12: | Line 12: | ||
|caveats= | |caveats= | ||
This method should never be called inside an event handler originating from a previous {{sdk method|wait}} call. Doing so is undefined behavior and may break the internal SDK state. For example: | This method should never be called inside an event handler originating from a previous {{sdk method|wait}} call. Doing so is undefined behavior and may break the internal SDK state. For example: | ||
< | <syntaxhighlight lang="c"> | ||
... | ... | ||
vp_event_set(instance, VP_EVENT_AVATAR_ADD, event_avatar_add); | vp_event_set(instance, VP_EVENT_AVATAR_ADD, event_avatar_add); | ||
Line 19: | Line 19: | ||
void event_avatar_add(VPInstance sdk) | void event_avatar_add(VPInstance sdk) | ||
{ | { | ||
char message[ | char message[300]; | ||
sprintf((char*)&message, "Hello, %s!", vp_string(sdk, VP_AVATAR_NAME)); | sprintf((char*)&message, "Hello, %s!", vp_string(sdk, VP_AVATAR_NAME)); | ||
vp_say(sdk, (char*)&message); | vp_say(sdk, (char*)&message); | ||
vp_wait(instance, 1000); // Undefined behavior | vp_wait(instance, 1000); // Undefined behavior | ||
} | } | ||
</ | </syntaxhighlight> | ||
|seealso= | |seealso= | ||
* {{sdk method|event_set}} | * {{sdk method|event_set}} | ||
}} | }} |
Revision as of 18:08, 6 February 2015
Method call snippet
vp_wait(instance, 1000);
Pumps incoming and outgoing network traffic and fires any registered events. Required for most in-world method calls (e.g. vp_say()
) and events to actually happen.
Parameters
These are the parameters that this method requires:
Parameter | Usage |
---|---|
VPInstance instance |
Pointer to the instance this method call is intended for |
int milliseconds |
Maximum amount of time to pump (in milliseconds) |
Returns
This method returns a return code integer, which indicates whether the call was successful or errored for any reason:
Return code | Cause |
---|---|
VP_RC_SUCCESS |
Successful call (for methods that have a registered callback, it only means the request has been sent) |
VP_RC_NOT_INITIALIZED |
SDK not initialized with vp_init() yet
|
Behavior
- This will attempt to send all pending messages and receive all pending data within the given time limit
- All SDK events are fired from this method call. Consequently, events are fired on the same thread as the caller.
- If a value of
0
is passed, it could still fire a number of different events - If there is nothing to handle, it will wait until the time limit. Else, it will return immediately after handling all pending data
Caveats
This method should never be called inside an event handler originating from a previous vp_wait()
call. Doing so is undefined behavior and may break the internal SDK state. For example:
...
vp_event_set(instance, VP_EVENT_AVATAR_ADD, event_avatar_add);
while(vp_wait(instance, 1000) == 0){}
...
void event_avatar_add(VPInstance sdk)
{
char message[300];
sprintf((char*)&message, "Hello, %s!", vp_string(sdk, VP_AVATAR_NAME));
vp_say(sdk, (char*)&message);
vp_wait(instance, 1000); // Undefined behavior
}
Examples
- This method has no usage examples; please add at least one to this page