Пример #1
0
		//--------------------------------------------------------------------------------------------------
		//--------------------------------------------------------------------------------------------------
        void HttpRequestSystem::OnInit()
        {
            JavaClassDef classDef("com/chilliworks/chillisource/networking/HttpRequestSystem");
            classDef.AddMethod("isConnected", "()Z");

            m_javaSystem = JavaSystemUPtr(new JavaSystem(classDef));
        }
Пример #2
0
ClassDef::ClassDef( char * defFile ):openErr(0)
{

  // allocate for the input line from the class defination file.
  //
  char * classDefLine = new char[256];

  // open the needed files:
  //
  ifstream classDef(defFile);
  if( ! classDef )
  {
     cerr << "Could not open class definition file: " << defFile << endl;
     openErr = true;
  }

  cppFile = defFile;
  hppFile = defFile;
  cppFile += ".cpp";
  hppFile += ".hpp";

  if( !openErr )
  {
    char * result;
    const char * Level2;
    const char * Level3;

    // expect the first line in the class def to contain the CLASS
    // keyword.
    //
    if ( classDef.getline( classDefLine, 80 ) )
    {

      cout << classDefLine << endl;

      result = strtok( classDefLine," " );

      cout << result << endl;

      if( !strcmp( result, tokClassHeader ) )
      {
	result = strtok( '\0', " " );
	cout << result << endl;
	className = result;
        className.trim();
      }
    }

    while ( classDef.getline( classDefLine, 80 ) && className.max() )
    {
      trim( classDefLine );

      if( strlen( classDefLine ) )
      {
        cout << classDefLine << endl;

        // level 2
        if( strstr( classDefLine, tokPrivate ) )
        {
		 Level2 = tokPrivate;
        }
        else if( strstr( classDefLine, tokPublic ) )
        {
		 Level2 = tokPublic;
        }
        else if( strstr( classDefLine, tokData ) )
        {
		 Level3 = tokData;
        }
        else if( strstr( classDefLine, tokMethods ) )
        {
		 Level3 = tokMethods;
        }
        else if( strstr( classDefLine, tokParents ) )
        {
		 Level3 = tokParents;
        }
        else if( strstr( classDefLine, tokInclude ) )
        {
	  hString * incLine = new hString;
	  *incLine = classDefLine;
	  includes.add(incLine);
        }
        else
        {
	  if( Level3 == tokData )
	  {
	    classMember * member = new classMember;

	    if( parseMember( *member, classDefLine ) )
	    {

	      findType( *member );
	      accessDefs( *member );
              accessImps( *member );
              initAndDestroy( *member );

	      if( Level2 == tokPublic )
	      {
	        publicMembers.add(member);
	      }
	      else if( Level2 == tokPrivate )
	      {
	        privateMembers.add(member);
	      }
              if( member->type.matchIn("*") )
              {
	        classMember * sizMember = new classMember;
                sizMember->name = "size";
                sizMember->name += member->name.upperS();
                sizMember->type = "unsigned long";
	        findType( *sizMember );
	        accessDefs( *sizMember );
                accessImps( *sizMember );
                initAndDestroy( *sizMember );
	        sizeMembers.add( sizMember );

              }

	    }
	  }
	  else if ( Level3 == tokMethods )
	  {

	    hString * method = new hString;
	    *method = classDefLine;
	    if( Level2 == tokPublic )
	    {
	      publicMethods.add(method);
	    }
	    else if( Level2 == tokPrivate )
	    {
	      privateMethods.add(method);
	    }

	  }
	  else if ( Level3 == tokParents )
	  {

	    hString * dad = new hString;
	    *dad = classDefLine;
	    if( Level2 == tokPublic )
	    {
	      publicParents.add(dad);
	    }
	    else if( Level2 == tokPrivate )
	    {
	      privateParents.add(dad);
	    }

	  }

        }

      } // end if length

    } // end while

  } // end if

  delete [] classDefLine;

}