Пример #1
0
    void ExportFC_InnerClass(ref StringBuilder szOut, int nSpaceCount, bool bExportReadWriteFunc)
    {
        int nSize = m_ChildMsgDesc.Count;

        for (int i = 0; i < nSize; ++i)
        {
            PBMessage pChild = m_ChildMsgDesc[i];
            pChild.ExportFCScript(ref szOut, nSpaceCount, bExportReadWriteFunc);
        }
    }
Пример #2
0
    public void ExportFC(string szPath, bool bExportReadWriteFunc)
    {
        // 先删除该目录下的文件
        FCClassWrap.DeletePath(szPath);
        System.IO.Directory.CreateDirectory(szPath);

        StringBuilder szFileData = new StringBuilder(1024 * 1024 * 4);
        PBMessageFile pMsgFile = null;
        PBMessage     pMsg = null;
        string        szPathName = string.Empty, szFileName = string.Empty;
        int           nFileCount  = m_MessageFiles.Count;
        int           nClassCount = 0;

        // 先导出PBTpye, 已经内置了,不需要导出了
        //szFileData.Append("enum PB_ZipType\r\n");
        //szFileData.Append("{\r\n");
        //szFileData.Append("    PB_Zip_Varint = 0,\r\n");
        //szFileData.Append("    PB_Zip_Fixed  = 1,\r\n");
        //szFileData.Append("    PB_Zip_ZigZag = 2,\r\n");
        //szFileData.Append("};\r\n");
        //szPathName = szPath + "FCProtobufType.cs";
        //System.IO.File.WriteAllText(szPathName, szFileData.ToString());

        for (int i = 0; i < nFileCount; ++i)
        {
            pMsgFile = m_MessageFiles[i];
            szFileData.Clear();
            for (int j = 0; j < pMsgFile.m_Enums.Count; ++j)
            {
                pMsgFile.m_Enums[j].ExportFC(ref szFileData, 0);
            }
            nClassCount = pMsgFile.m_Messages.Count;
            for (int j = 0; j < nClassCount; ++j)
            {
                pMsg = pMsgFile.m_Messages[j];
                pMsg.ExportFCScript(ref szFileData, 0, bExportReadWriteFunc);
            }
            szFileName  = pMsgFile.m_szFileName;
            szFileName += ".cs";
            szPathName  = szPath;
            szPathName += szFileName;

            // 保存
            //System.IO.File.WriteAllText(szPathName, szFileData.ToString());
            SaveUTF8File(szPathName, szFileData.ToString());
        }
    }