| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 | 
							
- /** @file */
 
- // -------------------------------------------------------------------------
 
- // object which allow to parse upon generic JSON structure and format it back
 
- //
 
- //
 
- class JsonApiStruct : Managed
 
- {
 
- 	void JsonApiStruct()
 
- 	{
 
- 	}
 
- 	void ~JsonApiStruct()
 
- 	{
 
- 	}
 
- 	/**
 
- 	\brief Event when expand (unpack) process starts
 
- 	*/
 
- 	void OnExpand()
 
- 	{
 
- 	}
 
- 	/**
 
- 	\brief Event when pack starts - you will pack your stuff here
 
- 	*/
 
- 	void OnPack()
 
- 	{
 
- 		Print( "OnPack() ");
 
- 	}
 
- 	/**
 
- 	\brief Verification event after successfull JSON packing
 
- 	*/
 
- 	void OnBufferReady()
 
- 	{
 
- 	}
 
- 	/**
 
- 	\brief Event called when pending store operation is finished - callback from JsonApiHandle before handle release
 
- 	*/
 
- 	void OnSuccess( int errorCode )
 
- 	{
 
- 		// errorCode is EJsonApiError
 
- 	}
 
- 	/**
 
- 	\brief Event called when pending store operation is finished - callback from JsonApiHandle before handle release
 
- 	*/
 
- 	void OnError( int errorCode )
 
- 	{
 
- 		// errorCode is EJsonApiError
 
- 	}
 
- 	
 
- 	/**
 
- 	\brief Called when parsing object
 
- 	*/
 
- 	void OnObject( string name )
 
- 	{
 
- 		Print( "OnObject: " + name );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing integer value
 
- 	*/
 
- 	void OnInteger( string name, int value )
 
- 	{
 
- 		Print( "OnInteger: " + value );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing float value
 
- 	*/
 
- 	void OnFloat( string name, float value )
 
- 	{
 
- 		Print( "OnFloat: " + value );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing boolean value
 
- 	*/
 
- 	void OnBoolean( string name, bool value )
 
- 	{
 
- 		Print( "OnBoolean: " + value );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing string value
 
- 	*/
 
- 	void OnString( string name, string value )
 
- 	{
 
- 		Print( "OnString: " + value );
 
- 	}
 
- 	
 
- 	/**
 
- 	\brief Called when parsing vector value
 
- 	*/
 
- 	void OnVector( string name, vector value )
 
- 	{
 
- 		Print( "OnVector: " + value );
 
- 	}
 
- 	
 
- 	/**
 
- 	\brief Called when parsing array
 
- 	*/
 
- 	void OnStartArray( string name )
 
- 	{
 
- 		Print( "OnStartArray: " + name );
 
- 	}
 
- 	/**
 
- 	\brief Called when array end, returns count of items
 
- 	*/
 
- 	void OnEndArray( int itemCount )
 
- 	{
 
- 		Print( "OnEndArray: " + itemCount );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing object
 
- 	*/
 
- 	void OnItemObject( int index, string name )
 
- 	{
 
- 		Print( "OnItemObject: " + name );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing integer value
 
- 	*/
 
- 	void OnItemInteger( int index, int value )
 
- 	{
 
- 		Print( "OnItemInteger: " + value );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing float value
 
- 	*/
 
- 	void OnItemFloat( int index, float value )
 
- 	{
 
- 		Print( "OnItemFloat: " + value );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing boolean value
 
- 	*/
 
- 	void OnItemBoolean( int index, bool value )
 
- 	{
 
- 		Print( "OnItemBoolean: " + value );
 
- 	}
 
- 	/**
 
- 	\brief Called when parsing string value from array
 
- 	*/
 
- 	void OnItemString( int index, string value )
 
- 	{
 
- 		Print( "OnItemString: " + value );
 
- 	}
 
- 	
 
- 	/**
 
- 	\brief Called when parsing vector value from array
 
- 	*/
 
- 	void OnItemVector( int index, vector value )
 
- 	{
 
- 		Print( "OnItemVector: " + value );
 
- 	}
 
- 	
 
- 	/**
 
- 	\brief Register script variable for auto-feature
 
- 	*/
 
- 	proto native void RegV( string name );
 
- 	/**
 
- 	\brief Push object to parse (only during parse operation)
 
- 	*/
 
- 	proto native void Push( JsonApiStruct obj );	
 
- 	
 
- 	/**
 
- 	\brief Start object at hierarchy - !!! Be cautious and doublecheck results when using this !!!
 
- 	*/
 
- 	proto native void StartObject( string name );
 
- 	/**
 
- 	\brief End object at hierarchy - !!! Be cautious and doublecheck results when using this !!!
 
- 	*/
 
- 	proto native void EndObject();
 
- 	/**
 
- 	\brief Add scripted object to hierarchy (calls through hierarchy)
 
- 	*/
 
- 	proto native void StoreObject( string name, JsonApiStruct obj );
 
- 	
 
- 	/**
 
- 	\brief Add float value to hierarchy
 
- 	*/
 
- 	proto native void StoreFloat( string name, float value );
 
- 	
 
- 	/**
 
- 	\brief Add integer value to hierarchy
 
- 	*/
 
- 	proto native void StoreInteger( string name, int value );
 
- 	
 
- 	/**
 
- 	\brief Add boolean value to hierarchy
 
- 	*/
 
- 	proto native void StoreBoolean( string name, bool value );
 
- 	/**
 
- 	\brief Add string value to hierarchy
 
- 	*/
 
- 	proto native void StoreString( string name, string value );
 
- 	
 
- 	/**
 
- 	\brief Add vector value to hierarchy
 
- 	*/
 
- 	proto native void StoreVector( string name, vector value );
 
- 	
 
- 	/**
 
- 	\brief Start array at hierarchy - !!! Be cautious and doublecheck results when using this !!!
 
- 	*/
 
- 	proto native void StartArray( string name );
 
- 	/**
 
- 	\brief End array at hierarchy - !!! Be cautious and doublecheck results when using this !!!
 
- 	*/
 
- 	proto native void EndArray();
 
- 	
 
- 	/**
 
- 	\brief Add scripted unnamed/ array object
 
- 	*/
 
- 	proto native void ItemObject( JsonApiStruct obj );
 
- 	
 
- 	/**
 
- 	\brief Add unnamed/ array float value
 
- 	*/
 
- 	proto native void ItemFloat( float value );
 
- 	
 
- 	/**
 
- 	\brief Add unnamed/ array integer value
 
- 	*/
 
- 	proto native void ItemInteger( int value );
 
- 	
 
- 	/**
 
- 	\brief Add unnamed/ array boolean value
 
- 	*/
 
- 	proto native void ItemBoolean( bool value );
 
- 	/**
 
- 	\brief Add unnamed/ array string value
 
- 	*/
 
- 	proto native void ItemString( string value );
 
- 	/**
 
- 	\brief Add unnamed/ array vector value
 
- 	*/
 
- 	proto native void ItemVector( vector value );
 
- 	/**
 
- 	\brief Call this when you've done packing or unpacking (interrupt operation)
 
- 	*/
 
- 	proto native void SetDone();
 
- 	/**
 
- 	\brief Call this when you've done packing or unpacking + want to generate error - prevent to send invalid data etc.
 
- 	*/
 
- 	proto native void SetFail();
 
- 	
 
- 	/**
 
- 	\brief Start object packing - when it can be done (when sending remote etc.)
 
- 	*/
 
- 	proto native void Pack();
 
- 	/**
 
- 	\brief Start object packing now - for use at main thread only!
 
- 	*/
 
- 	proto native void InstantPack();
 
- 	/**
 
- 	\brief Start object unpacking from RAW string data
 
- 	*/
 
- 	proto native void ExpandFromRAW( string data );
 
- 	/**
 
- 	\brief Get packed JSON as string (!only if you called Pack() first, it may return null)
 
- 	*/
 
- 	proto native string AsString();
 
- 	/**
 
- 	\brief Pack() and save JSON to file
 
- 	*/
 
- 	proto native bool PackToFile( string FileName );
 
- 	/**
 
- 	\brief Save JSON to file (only If something was loaded or recieved previously!)
 
- 	*/
 
- 	proto native bool SaveToFile( string FileName );
 
- 	/**
 
- 	\brief Load JSON from file and Expand
 
- 	*/
 
- 	proto native bool LoadFromFile( string FileName );
 
- };
 
 
  |